Добавить в корзинуПозвонить
Найти в Дзене
CODERIKK

🔹 Группировка: GROUP BY — не страшно

🔹 Зачем GROUP BY и как не напутать с SUM/COUNT/HAVING? 🔸 GROUP BY нужен, чтобы собрать похожие строки в группы и получить метрики по каждой группе. Без него SUM и COUNT вернут только общие числа по всей таблице, и вы потеряете разбивку по категориям. 🔸 SUM суммирует числовые поля, COUNT считает строки. WHERE отбирает строки до группировки; HAVING фильтрует уже сгруппированные результаты (например — группы с суммой больше порога). 🔸 Практический пример: SELECT user_id, COUNT(*) AS cnt, SUM(amount) AS total FROM payments WHERE status = 'done' GROUP BY user_id HAVING SUM(amount) > 100; 🔸 Совет: в SELECT либо агрегаты, либо колонки из GROUP BY — иначе ошибка. Старайтесь сначала ужать данные через WHERE, а HAVING использовать только для условий на агрегаты. 📚 GROUP BY + SUM/COUNT дают групповые метрики; HAVING — фильтр по этим метрикам. #CODERIKK #Sql #Junior ➡️ Мы в Telegram - Сетке - Дзен Буду рад вашей реакции здесь⬇️

🔹 Группировка: GROUP BY — не страшно

🔹 Зачем GROUP BY и как не напутать с SUM/COUNT/HAVING?

🔸 GROUP BY нужен, чтобы собрать похожие строки в группы и получить метрики по каждой группе. Без него SUM и COUNT вернут только общие числа по всей таблице, и вы потеряете разбивку по категориям.

🔸 SUM суммирует числовые поля, COUNT считает строки. WHERE отбирает строки до группировки; HAVING фильтрует уже сгруппированные результаты (например — группы с суммой больше порога).

🔸 Практический пример:

SELECT user_id, COUNT(*) AS cnt, SUM(amount) AS total

FROM payments

WHERE status = 'done'

GROUP BY user_id

HAVING SUM(amount) > 100;

🔸 Совет: в SELECT либо агрегаты, либо колонки из GROUP BY — иначе ошибка. Старайтесь сначала ужать данные через WHERE, а HAVING использовать только для условий на агрегаты.

📚 GROUP BY + SUM/COUNT дают групповые метрики; HAVING — фильтр по этим метрикам.

#CODERIKK #Sql #Junior

➡️ Мы в Telegram - Сетке - Дзен

Буду рад вашей реакции здесь⬇️