Учебно-практическое пособие москва 2017 ббк


SELECT count( * ) FROM seats WHERE aircraft_code = 'SU9'



Pdf көрінісі
бет31/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   27   28   29   30   31   32   33   34   ...   243
Байланысты:
Язык SQL. Базовый курс

SELECT count( * ) FROM seats WHERE aircraft_code = 'SU9';
SELECT count( * ) FROM seats WHERE aircraft_code = 'CN1';
... ... ... ...
33


Очевидно, что это нерациональный подход, поскольку придется выполнять отдель-
ные однотипные команды для всех моделей самолетов. Язык SQL позволяет упро-
стить решение такой задачи за счет применения операции группирования строк на
основе некоторого критерия. Этим критерием будет являться совпадение значений
атрибута «Код самолета» (aircraft_code) у различных строк таблицы «Места» (seats).
В модифицированной команде вместо предложения WHERE будет добавлено предло-
жение GROUP BY, которое отвечает за группировку строк с одинаковыми значениями
атрибута aircraft_code. Обратите внимание, что при наличии предложения GROUP BY
агрегатная функция count выполняет подсчеты строк
для каждой группы
строк.
SELECT aircraft_code, count( * ) FROM seats
GROUP BY aircraft_code;
Конечно, в вашей выборке значения в столбце count будут гораздо меньше.
aircraft_code | count
---------------+-------
773
| 402
733
| 130
CN1
|
12
CR2
|
50
319
| 116
SU9
|
97
321
| 170
763
| 222
320
| 140
(9 строк)
Если мы захотим отсортировать выборку по числу мест в самолетах, то нужно будет
дополнить команду предложением ORDER BY, которое обеспечит сортировку резуль-
тирующих строк по значениям второго столбца.
SELECT aircraft_code, count( * ) FROM seats
GROUP BY aircraft_code
ORDER BY count;
aircraft_code | count
---------------+-------
CN1
|
12
CR2
|
50
SU9
|
97
319
| 116
733
| 130
320
| 140
321
| 170
763
| 222
773
| 402
(9 строк)
Теперь поставим более сложную задачу: подсчитать количество мест в салонах для
всех моделей самолетов, но теперь уже с учетом класса обслуживания (бизнес-класс
и экономический класс). В этом случае группировка выполняется уже по двум атри-
бутам: aircraft_code и fare_conditions. Отсортируем выборку по тем же столбцам, по
которым выполняли группировку.
34




Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет