Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc
Post #996
3.68K
GROUP BY с HAVING — фильтруем агрегированные данные!
Когда нужно сгруппировать данные и одновременно применить фильтр к агрегатам, обычный
Посчитаем количество заказов на каждого клиента:
Теперь выберем только тех клиентов, у кого больше 5 заказов:
Можно комбинировать разные агрегаты, например сумма и среднее:
🔥 Но помните: фильтр с
➡️ SQL Ready | #практика
Когда нужно сгруппировать данные и одновременно применить фильтр к агрегатам, обычный
WHERE не работает. HAVING позволяет фильтровать уже агрегированные результаты.Посчитаем количество заказов на каждого клиента:
SELECT CustomerID, COUNT(*) AS OrdersCount
FROM Orders
GROUP BY CustomerID;
Теперь выберем только тех клиентов, у кого больше 5 заказов:
SELECT CustomerID, COUNT(*) AS OrdersCount
FROM Orders
GROUP BY CustomerID
HAVING COUNT(*) > 5;
Можно комбинировать разные агрегаты, например сумма и среднее:
SELECT CustomerID, SUM(TotalAmount) AS Total, AVG(TotalAmount) AS AvgOrder
FROM Orders
GROUP BY CustomerID
HAVING SUM(TotalAmount) > 1000;
🔥 Но помните: фильтр с
HAVING применяется после агрегации — сначала агрегируем, потом фильтруем.➡️ SQL Ready | #практика
- 🔥 15
- ❤ 9
- 👍 5
- 🤝 1


















