Здавалка
Главная | Обратная связь

WHERE CITY IN ('INDIANAPOLIS','WHITELAND')



GROUP BY CITY

ORDER BY 2,3;

ORDER BY итоговых функций МАХ и MIN.

SELECT CITY, MAX(Str), MIN(Nalogi)

FROM Viplaty

GROUP BY CITY;

GROUP BY И ORDER BY

В выражении ключевого слова ORDER BY задается сортировка данных запроса, а в выражении ключевого слова GROUP BY — сортировка этих данных по группам. Вот несколько особенностей использования ключевого слова GROUP BY для сортировки.

Результаты группируются по значениям столбца CITY, но упорядочены сначала по числу записей для каждого города.

SELECT Pokupki, COUNT(*)

FROM Shop

GROUP BY Pokupki

ORDER BY 2,1;

Обратите внимание на порядок представления полученных данных. Они сначала отсортированы по числу записей для каждой покупки и только потом по названиям покупок.

Ключевое слово GROUP BY предназначено для группирования одинаковых значений, а задачей ORDER BY является представление данных просто в определенном порядке. Ключевые слова GROUP BY и ORDER BY можно использовать в одном операторе SELECT, но каждое из них должно выполнять свою задачу. В одном операторе SELECT ключевое слово GROUP BY должно предшествовать ключевому слову ORDER BY.

Ключевое слово HAVING

Ключевое слово HAVING используется в операторе SELECT вместе с ключевым словом GROUP BY, чтобы указать какие из групп должны быть представлены в выводе. Для GROUP BY ключевое слово HAVING играет ту же роль, что и WHERE для ORDER BY. Другими словами, WHERE задает условия для значений из выбранных столбцов, а HAVING задает условия для групп, создаваемых с помощью GROUP BY.

Ключевое слово HAVING в операторе SELECT должно следовать за выражением ключевого слова GROUP BY и тоже предшествовать ключевому слову ORDER BY, если последнее используется.

Синтаксис оператора SELECT, в котором используется ключевое слово HAVING, следующий.

SELECT столбец1, столбец2

FROM таблица1, таблица2

WHERE условия

GROUP BY столбец1, столбец2

HAVING условия

ORDER BY столбец1, столбец2

В следующем примере выбираются средние значения для выплат, кроме Гринвуда. Данные группируются по значениям столбца CITY, но отображаются только те группы (города), для которых средняя зарплата не превышает 20000. Результат отсортирован по значению средних выплат для городов.

 

SELECT CITY AVG(Viplaty)

FROM Otchet

WHERE CITY <> 'GREENWOOD'

GROUP BY CITY

HAVING AVG(Viplaty) < 20000

ORDER BY 3;

 

Упражнения

1. Запишите оператор SQL, возвращающий табельный номер служащего (EMP_ID), имя служащего (LAST_NAME) и название города (CITY) из таблицы EMPLOYEE, сгруппированные по значениям столбца CITY.

2. Запишите оператор SQL, возвращающий из таблицы EMPLOYEE названия городов и число проживающих в них служащих. Добавьте в оператор ключевое слово HAVING, чтобы в выводе отобразить только те города, в которых проживает более двух служащих из числа тех, информация о которых имеется в таблице.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.