TGViewer
Дима SQL-ит 🧑‍💻 (Аналитика данных, AI) Дима SQL-ит 🧑‍💻 (Аналитика данных, AI) @dima_sqlit · 2.26K subscribers
Post #101 1.46K
💯 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
  • 🔥 31
  • 🐳 6
  • ❤‍🔥 1
More from @dima_sqlit
  1. Sep 22, 2026Что сейчас стоит изучать Аналитику — чтобы перейти в DS/ML ? Замечаю общий тренд на изучен…
  2. Sep 21, 2026🧠 Уровень абстракции — навык, который сэкономит вам годы учёбы: Когда я начинал изучать P…
  3. Sep 18, 2026🏦 Задача с собеса в Т-банк на SQL: вторая зарплата в отделе Условие: есть таблица сотрудн…
  4. Sep 16, 2026🏠 IT ипотека (Часть 3) — Как я сэкономил на ремонте: кэшбэк, промокоды и один неочевидный…
  5. Sep 7, 2026🍂 Осень — сезон найма: Каждый год одна и та же история — в сентябре рынок будто просыпает…
  6. Aug 24, 2026P-value простыми словами: Условие: подбросили монету 10 раз, выпало 9 орлов. Можно ли тепе…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →