Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11.Оператор SELECT языка SQL назначение, синтак...docx
Скачиваний:
1
Добавлен:
21.11.2019
Размер:
30.89 Кб
Скачать

Сукупні характеристики

Оператор SELECT дозволяє повертати не тільки множину значень полів, але і деякі сукупні характеристики, підраховані по всіх чи по зазначених записах таблиці. Одна з функцій, що повертають такі сукупні характеристики – це функція соunt(<умова>). Вона повертає кількість записів у таблиці, що задовольняють заданим умовам. Наприклад, оператор

SELECT count(*) FROM Pers

підрахує повну кількість записів у таблиці Pers. А оператор

SELECT count (*) FROM Pers WHERE Dep= ' Цех 1'

видасть число записів для співробітників цеху1.

Оператор, що використовує ключове слово DISTINCT , видасть число неповторюваних значень у зазначеному полі. Наприклад, оператор

SELECT count(DISTINCT Dep) FROM Pers

поверне число різних підрозділів, згаданих у полі Dep таблиці Pers.

Функції min(<поле>), mах(<поле>), avg(<nоле>), sum(<поле>) повертають відповідно мінімальне, максимальне, середнє і сумарне значення зазначеного поля. Наприклад, оператор

SELECT min(Year_b), max(Year_b), avg(Year_b) FROM Pers

поверне мінімальне, максимальне і середнє значення року народження, а оператор

SELECT min(2002-Year_b), max(2002-Year_b), avg(2002-Year_b) FROM Pers

WHERE Dep='Бухгалтерія'

видасть аналогічні дані, але стосовно віку тільки співробітників бухгалтерії.

В операторі SELECT можна вказувати не тільки сумарні характеристики, але і будь-які вирази від них. Наприклад, оператор

SELECT 2002- (min(Year_b)+max(Year_b))/2

FROM Pers WHERE Dep='Бухгалтерія'

видасть моду (середнє між максимальним і мінімальним значеннями) віку співробітників бухгалтерії.

При використанні сумарних характеристик треба враховувати, що в списку значень, що повертаються, після ключового слова SELECT можуть бути або поля (у тому числі що обчислюються), або сукупні характеристики, але не можуть бути і ті, і інші (без вказівки щодо групування даних). Це очевидно, тому що оператор може або повертати множину значень полів записів, або сумарні характеристики за таблицею, але не може повертати ці несумісні одне з одним дані. Тому не можна, наприклад, записати оператор

SELECT Fam, max(Year_b) FROM Регs

для визначення прізвища наймолодшого співробітника. Утім, цю задачу можна вирішити за допомогою вкладених запитів

Поєднання в одному операторі полів і сукупних характеристик можливо, якщо використовувати групування записів, що задається ключовими словами GROUP BY. Після цих ключових слів перелічуються всі поля, що входять у список SELECT. У цьому випадку зміст сукупних характеристик змінюється: вони проводять обчислення не по всіх записах таблиці, а по тих, що відповідають однаковим значенням зазначених полів. Наприклад, оператор

SELECT Dep, count(*) FROM Pers GROUP BY Dep

поверне таблицю, у якій буде 2 стовпці: стовпець з назвами відділів, і стовпець, у якому буде відображене число співробітників у кожнім відділі:

Dep

Count

Бухгалтерія

3

Цех 1

4

Цех 2

4

При групуванні записів за допомогою GROUP BY можна вводити умови добору записів з ключовим словом HAVING. Наприклад, якщо переписати наведений вище оператор у такий спосіб:

SELECT Dep, count(*) FROM Pers GROUP BY Dep

HAVING Dep < > 'Бухгалтерія'

то перший рядок у наведеній вище таблиці повинний зникнути.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]