SQL Ready | Базы Данных
15.4K subscribers
1.2K photos
66 videos
2 files
578 links
Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

РКН: https://clck.ru/3QREBc

Реклама на бирже: https://telega.in/c/sql_ready
Download Telegram
🖥 Пишем мини-чат-бота!

Сегодня создаём простого бота, который “понимает” текст запроса и отвечает на сообщения пользователя.

В этом посте:
• Храним шаблоны фраз и ответы в таблице responses;

• Используем ILIKE, чтобы находить ключевые слова в сообщении;

• Возвращаем лучший ответ по приоритету совпадений.


Приём показывает, что SQL способен работать не только с числами, но и с текстом, превращаясь в мини-экспертную систему.

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥279👍7🤝1
🖥 Временные таблицы и переменные в SQL Server!

В этой шпаргалке собраны основные приёмы работы с временными данными в SQL Server: создание, заполнение, очистка и удаление временных таблиц, а также использование табличных переменных. Эти методы помогают выполнять промежуточные расчёты, строить отчёты и оптимизировать сложные запросы без изменения основной схемы базы.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍119
WITHIN GROUP — агрегаты с управляемым порядком!

Обычные агрегаты в SQL не гарантируют порядок входных данных, что важно для медиан и упорядоченных списков. Конструкция WITHIN GROUP решает это, задавая порядок элементов внутри агрегатной функции.

Пример: соберём список продуктов по категории в порядке убывания продаж:
SELECT
category_id,
LISTAGG(product_name, ', ') WITHIN GROUP (ORDER BY total_sales DESC) AS top_products
FROM product_sales
GROUP BY category_id;


В отличие от ARRAY_AGG(product_name ORDER BY ...), синтаксис WITHIN GROUP используется для ordered-set функций, а не для любых агрегатов.

Пример вычисления порогового значения 90% по сумме заказов по регионам:
SELECT
region_id,
PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY total_amount) AS p90_sales
FROM orders
GROUP BY region_id;


PERCENTILE_CONT() и PERCENTILE_DISC() позволяют вычислять медиану или любое процентное значение без оконных функций.

Медиана чека по каждому магазину:
SELECT
store_id,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY total_amount) AS median_check
FROM orders
GROUP BY store_id;


Такой подход может быть проще и эффективнее, чем использование NTILE() или RANK() в оконных выражениях.

🔥 Используйте WITHIN GROUP, когда важен порядок в агрегатах.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍87
🖥 Корреляция: как связаны просмотры и продажи!

SQL умеет не только суммировать и фильтровать данные, он способен показывать насколько сильно одно влияет на другое.

В этом посте:
Находим средние значения метрик;

Считаем ковариацию и дисперсии;

Собираем финальную формулу корреляции прямо в запросе.


Это помогает быстро проверять гипотезы, оценивать результаты и находить зависимости.

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍148🤝1
Хочешь узнать, когда именно заказ сменил статус?

Используй LAG(), она возвращает значение из предыдущей строки в рамках группы:
LAG(status) OVER (PARTITION BY order_id ORDER BY updated_at)


Сравни текущее значение с предыдущим:
status <> LAG(status) OVER (...)


Получается булево поле — true, когда статус поменялся.

Хочешь вывести только моменты изменения, просто оберни в подзапрос:
SELECT *
FROM (
SELECT order_id, status, updated_at,
status <> LAG(status) OVER (PARTITION BY order_id ORDER BY updated_at) AS changed
FROM order_status_log
) t
WHERE changed;


🔥 Это основа для аудита изменений и аналитики событийных логов.

➡️ SQL Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍108
🖥 Работа с JSON в PostgreSQL!

В этой шпаргалке собраны основные приёмы работы с JSON и JSONB в PostgreSQL: доступ к элементам, извлечение вложенных данных, обновление значений, создание объектов, раскрытие массивов, форматирование и проверка вхождения. Эти инструменты позволяют удобно хранить и обрабатывать структурированные данные прямо в базе.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍189🔥9😁1
👍12🔥96
Что же выведет консоль?
Anonymous Quiz
21%
A
13%
B
26%
C
40%
D
👍9🔥7🤝6