💯 SQL-лайфхаки — номера в GROUP BY и как избежать целых чисел в расчётах при делении:

Группировка в SQL: по именам и по номерам столбцов 🔵
В SQL при группировке часто повторяешь длинные названия столбцов. Можно проще — использовать номера столбцов из списка SELECT.

Пример с именами столбцов:

SELECT order_date, customer_city, COUNT(*)
FROM orders
GROUP BY order_date, customer_city

То же самое с номерами столбцов:

SELECT order_date, customer_city, COUNT(*)
FROM orders
GROUP BY 1, 2  -- 1 и 2 — это первый и второй столбцы в SELECT

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

Правильное деление: избегаем целочисленного деления 🔵
SQL часто делит целые числа и отбрасывает дроби — 5/2 = 2, а не 2.5. Чтобы получить правильный процент, нужно привести числитель или знаменатель к дробному типу.

Способы:
• Умножить числитель на 100.0 (не на 100, а именно с точкой)
• Привести к float (через CAST)

Пример:

SELECT
    category,
    SUM(sales) AS total_sales,
    SUM(sales) * 100.0 / SUM(all_sales) AS percent -- 100.0 заставит SQL считать дроби
FROM sales
GROUP BY category

Или через CAST:

SELECT
    category,
    SUM(sales) AS total_sales,
    CAST(SUM(sales) * 100 AS DECIMAL(5,2)) / SUM(all_sales) AS percent
FROM sales
GROUP BY category

Итог:
Группировка по номерам столбцов (GROUP BY 1, 2) и явное указание дробного типа при делении (100.0 вместо 100 или через CAST) — два простых приёма, которые экономят время и избавляют от ошибок. Номера столбцов делают код компактнее и удобнее для правок, а правильное деление гарантирует точные проценты и метрики.

🍸 Если зашло, кидайте реакции — пойму, что SQL-трюки нужны!
❤️Поддержать канал бустами, чтобы у автора появился дополнительный функционал можно - здесь (это бесплатно и доступно с подпиской telegram premium)

❓ Знали об этих приёмах раньше или только сейчас узнали? Используете GROUP BY с номерами в работе? Делитесь опытом в комментариях!
✔️ Подпишитесь на канал, чтобы не пропустить следующие посты.

Сделал сайт - оцените:
🚬 Вопросы, обучение, консультации

@@dima_sqlit


Ссылки