От науки 3- лабораторная работа Делал: Suvonov n принято: Abrayev a лабораторная работа №3 Тема : Создание запросов с использованием «group by» и«having»


Download 212.74 Kb.
Sana24.12.2022
Hajmi212.74 Kb.
#1052626
TuriЛабораторная работа

РАЗВИТИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И СВЯЗИ РЕСПУБЛИКИ УЗБЕКИСТАН
МИНИСТЕРСТВО
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ МУХАММАДА АЛЬ-ХОРАЗМИ
ПРОТИВОПОЛОЖНАЯ ФИЛИАЛ

ФАКУЛЬТЕТ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
СТУДЕНТА ГРУППЫ КИ-12-20р (с)
База данных
ОТ НАУКИ
3- Лабораторная работа


Делал: Suvonov N
Принято: Abrayev A

Лабораторная работа №3
Тема: Создание запросов с использованием «GROUP BY» и «HAVING».
Цель работы: Научиться использовать команду «GROUP BY» при группировки данных. В некоторых случаях может потребоваться сортировка информации в таблице. Для этого используется параметр ORDER BY. Этот параметр сортирует все записи в указанном поле в порядке возрастания. При заказе по описанию записывается в порядке убывания. Order by (ASC) пишется в порядке возрастания.Что делать, если вам нужно перечислить студентов в алфавитном порядке или в порядке убывания? Для этого в операторе SELECT содержится выражение ORDER BY. В выражении ORDER BY можно создавать сложные условия сортировки, используя имена и номера столбцов, а также предикаты DESC, ASC
Команда GROUP BY позволяет группировать результаты при выборке из базы данных. К сгруппированным результатам можно применять функции (SUN, MIN, MAX).
Таким образом, запрос с использованием предложения GROUP BY называется «GROUPED QUERY». Столбец, следующий за этим выражением, называется «столбец группировки». Давайте рассмотрим еще несколько групповых запросов.Каков прогнозируемый диапазон объема продаж для каждого офиса?




SELECT REP_OFFICE, MIN(QUOTA), MAX(QUOTA)
FROM SALESREPS
GROUP BY REP_OFFICE
Другой вопрос: сколько сотрудников работает в каждом офисе?


SELECT REP_OFFICE, COUNT(*)
FROM SALESREPS
GROUP BY REP_OFFICE
Еще один интересный групповой вопрос: сколько клиентов обслуживает каждый оператор?
SELECT COUNT(DISTINCT CUST_NUM),
CUSTOMERS FOR SALESREPS', CUST_REP
FROM CUSTOMERS
GROUP BY CUST_REP
Обратите внимание на использование здесь псевдополя «КЛИЕНТЫ ДЛЯ ПРОДАЖНЫХ ПРЕДСТАВИТЕЛЕЙ». Результаты запроса могут быть сгруппированы по нескольким столбцам.
Например, следующим образом:
Подсчитайте общее количество заказов на одного клиента для каждого сотрудника.


SELECT REP, CUST, SUM(AMOUNT)
FROM ORDERS
GROUP BY REP, CUST
Но при группировке по двум столбцам невозможно создать группы и подгруппы с двумя уровнями результатов. Но сортировка возможна. В то же время при использовании GROUP BY результаты запроса автоматически сортируются. Мы видим следующий запрос:
Расчет общего количества заказов по каждому клиенту по каждому сотруднику; сортировать результаты опроса по клиентам и сотрудникам.


SELECT REP, CUST, SUM(AMOUNT)
FROM ORDERS
GROUP BY REP, CUST
ORDER BY REP, CUST
Группировка и разделение с использованием HAVING. Мы использовали предложение WHERE для условного разделения строк. Существует оператор HAVING для условного разделения групп. Его синтаксис такой же, как у оператора WHERE, и их можно использовать вместе.


SELECT REP, AVG(AMOUNT)
FROM ORDERS
GROUP BY REP
HAVING SUM(AMOUNT) > 300




Download 212.74 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling