TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Дима SQL-ит 🧑‍💻 (Аналитика данных, AI)

28 May, 10:17

Открыть в Telegram Поделиться Пожаловаться

❤️ Переменные в SQL: один раз написал — везде обновилось

Вам знакома ситуация, когда - написал большой sql запрос для задачи, а потом заказчик говорит: «Покажи то же самое, но за прошлый квартал» ?
И вы начинаете искать дату по всему файлу. Находите все вхождения, правите — и где-то всё равно пропускаешь одно. Запрос считает не то.
В общем очень много рутины.

🟢 В Python мы бы написали переменную в начале и пере использовали ее везде:
start_date = "2024-01-01"
discount_threshold = 0.10

🟢 Но в SQL тоже можно кое что придумать:
WITH params AS (
SELECT
DATE '2024-01-01' AS period_start,
DATE '2024-03-31' AS period_end,
0.10 AS discount_threshold
),
big_orders AS (
SELECT
o.order_id,
o.amount,
o.discount
FROM orders o
CROSS JOIN params p
WHERE o.order_date BETWEEN p.period_start AND p.period_end
AND o.discount > p.discount_threshold
)
SELECT * FROM big_orders

Все параметры — в одном месте сверху. Поменял квартал один раз — везде пересчиталось.

CROSS JOIN здесь — это не страшно.
params возвращает одну строку.
CROSS JOIN просто «прицепляет» эту строку к каждой строке основной таблицы.

🟢 Хотите еще таких лайфхаков ?
🔥 Набираем 70 реакций на этот пост, чтобы подобные посты выходили чаще

Итог: 🤩

🗂 Это один из тех приёмов, который занимает 10 секунд, но экономит кучу времени на поддержке запроса.
❓ А как вы решаете эту проблему — хардкодите или есть другой подход? Пишите в комментах!
📤 Пересылай пост коллеге или другу из аналитики — это бесплатно и помогает каналу расти. Спасибо!


🚬 Вопросы, обучение, консультации: Написать в ЛС | mentor.dima-sqlit.ru


@dima_sqlit

1k 0 20 28 91
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot