Главная страница
Навигация по странице:

  • Вложенным запросом

  • WHERE

  • Основы SQL. Основы sql основы sql план курса План курса


    Скачать 1.14 Mb.
    НазваниеОсновы sql основы sql план курса План курса
    АнкорKzkzkzals
    Дата21.09.2022
    Размер1.14 Mb.
    Формат файлаpptx
    Имя файлаОсновы SQL.pptx
    ТипДокументы
    #688650
    страница5 из 9
    1   2   3   4   5   6   7   8   9

    TRUNC ФУНКЦИЯ (ДЛЯ ДАТ)

    TRUNC ФУНКЦИЯ (ДЛЯ ДАТ)

    функция TRUNC возвращает дату, усеченную к определенной единице измерения

    TRUNC (date, [ format ] )


    Unit

    Действительные параметры формата

    Год

    YYYY, YEAR, SYEAR, YYY, YY, Y

    Квартал

    Q

    Месяц

    MONTH, MON, MM

    Неделя

    WW

    IW

    IW

    W

    W

    День

    DDD, DD

    День начала недели

    DAY, DY, D

    Час

    HH, HH12, HH24

    Минута

    MI

    Сейчас 01.09.2017 07:55:00, выберите ближайшие 5 рейсов из Санкт-Петербурга в Москву

    select t.*

    from (select f.date_departure

    , a.city

    , a_ar.city city_arrival

    from flights f

    join airports_data a_ar on a_ar.airport_code=f.arrival_airport

    where upper(a.city)='ST. PETERSBURG'

    and upper(a_ar.city)='MOSCOW'

    and f.date_departure > to_date('01.09.2017 07:55:00', 'dd.mm.yyyy hh24:mi:ss')

    order by f.date_departure) t

    where rownum<=5

    Вывести 10 бронирований с самой высокой стоимостью

    select *

    from (select *

    from bookings

    order by total_amount desc)

    where rownum<10

    Использование фразы GROUP BY позволяет сгруппировать строки в группы, имеющие одинаковые значения указанного поля:

    aircraft_code ORDER BY aircraft_code GROUP BY aircraft_code

    319 319 319

    321= 321 = 321

    733 321 733

    321 733

    К группам, полученным после применения GROUP BY, можно применить любую из стандартных агрегатных функций.

    • AVG() - функция возвращает среднее значение числового столбца.
    • COUNT() - данная функция возвращает количество строк, которые соответствует определенным критериям.
    • FIRST() - данная функция возвращает первое значение для выбранного столбца.
    • LAST() - данная функция возвращает последнее значение для выбранного столбца.
    • MAX() - функция возвращает наибольшее значение для выбранного столбца.
    • MIN() - функция возвращает наименьшее значение для выбранного столбца.
    • SUM() - функция возвращает сумму числового столбца.

    Список самолетов и количество мест в них:

    select aircraft_code

    , count(*)

    from bookings.seats

    group by aircraft_code

    Список самолетов и количество мест в них с учетом класса места

    select aircraft_code

    , fare_conditions

    , count(*)

    from bookings.seats

    order by 1,2

    , count(*) countFlight

    from lanit.flights t

    order by 1

    Вывести количество рейсов в сентябре 2017г. по дням и аэропортам

    select a.airport_name

    , trunc(f.date_departure)

    , count(*) countairport

    from lanit.flights f

    , airports_data a

    where trunc(f.date_departure,'mm')='01.09.2017'

    and f.departure_airport=a.airport_code

    group by trunc(f.date_departure), a.airport_name

    order by 1,2

    Предложение HAVING, используемое совместно с GROUP BY, позволяет исключить из результата группы, неудовлетворяющие условию (так же, как WHERE позволяет исключить строки).

    Получить кол-во мест в самолете по каждому типу, где мест больше 20

    select aircraft_code

    , fare_conditions

    , count(*)

    from bookings.seats

    having count(*) >=20

    order by 1,2

    , count(*) countFlight

    from lanit.flights t

    having count(*)>500

    order by 1

    select a.city

    from airports_data a

    group by a.city

    having count(*) > 1

    Вложенным запросом (подзапросом) называется запрос, содержащийся в предложении WHERE или HAVING другого оператора SQL.

    Вложенный подзапрос возвращает одно значение

    WHERE имя_поля1 = (SELECT имя_поля2 FROM имя_табл2 WHERE условие)

    Вложенный подзапрос возвращает несколько значений

    1   2   3   4   5   6   7   8   9


    написать администратору сайта