SQL В КАРМАНЕ
125 subscribers
87 photos
1 file
7 links
Добро пожаловать🤗

В этом канале вы найдете фишки по использованию SQL, которые пригодятся вам в работе или учебе!

Запись на курс по SQL или индивидуальные занятия: @sql_class

Программа и отзывы: https://sqlclass.ru/
Download Telegram
Стэнфорд открыл бесплатный курс по LLM! Учат обучать и запускать свои модели уровня GPT🚀

Разбирают оптимизацию, создание ИИ-агентов. В комплекте презентации и полезные шпаргалки.

Тык сюда: https://cme295.stanford.edu/syllabus/
5🔥2👍1👌1
🎯Различия между DISTINCT и DISTINCT ON

DISTINCT используется для удаления дубликатов по всей строке. Он возвращает уникальные строки, основываясь на всех выбранных столбцах.

SELECT DISTINCT category, price
FROM products;


Пример выгрузки:

| category | price |
|----------|-------|
| A | 10 |
| A | 15 |
| A | 10 |
| B | 20 |
| B | 25 |
| C | 30 |
| C | 35 |

DISTINCT ON вернёт только строки с уникальными значениями столбцов, указанных в скобках, а для остальных вернёт первое значение в соответствии с порядком сортировки. Если порядок сортировки не указан, будет использована сортировка по возрастанию (ASC).

SELECT DISTINCT ON (category) category, price
FROM products
ORDER BY category ASC, price DESC;


Пример выгрузки:
| category | price |
|----------|-------|
| A | 15 |
| B | 25 |
| C | 35 |
👍3👌1
📊 EXPLAIN ANALYZE в PostgreSQL

EXPLAIN ANALYZE — это команда в PostgreSQL, которая показывает, как будет выполняться SQL-запрос, при этом фактически выполняя его и выводя реальные данные о времени и количестве обработанных строк на каждом шаге.

Зачем использовать:
- Выявить "тяжелые" операции в запросе
- Понять, используется ли индекс или происходит сканирование всей таблицы
- Оценить фактическое время выполнения разных этапов
- Оптимизировать запросы для повышения производительности базы данных


Пример:
EXPLAIN ANALYZE
SELECT * FROM orders
WHERE customer_id = 12345;


Пояснения:
Результат будет содержать дерево операций, например:

- Seq Scan — последовательное сканирование всей таблицы
- Количество строк, обработанных на каждом шаге
- Время выполнения каждого шага в миллисекундах
🔥42😎1
Оконная функция LEAD в PostgreSQL

LEAD — это оконная функция, которая позволяет получить «следующее» значение без использования JOIN или подзапросов.

Как это работает?

LEAD(выражение, смещение, значение_по_умолчанию) OVER (PARTITION BY ... ORDER BY ...)

- выражение — столбец или результат вычисления,
- смещение — сколько строк вперед смотреть (по умолчанию 1),
- значение_по_умолчанию — что вернуть, если следующей строки нет (по умолчанию NULL).

Пример в PostgreSQL


SELECT
date,
sales,
LEAD(sales) OVER (PARTITION BY product ORDER BY date) AS next_day_sales
FROM sales_table;

Результат:


date,sales,next_day_sales
2024-01-01,100,150
2024-01-02,150,130
2024-01-03,130,NULL
🔥3👌1
Если бы не было так грустно…😎
😁2🤣2😭1
Мы на пороге серьезных изменений сайта😎😂

Какой аватар нравится больше?
Какой аватар больше нравится?
Anonymous Poll
31%
1
69%
2
Вопросы с консультаций: extract epoch в PostgreSQL

EXTRACT(EPOCH FROM timestamp) — функция, которая возвращает количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC (Unix-время) до указанного timestamp.

Зачем?

- Упрощает вычисления с датами (например, в поиске разницы между двумя моментами времени).

Пример:

SELECT EXTRACT(EPOCH FROM TIMESTAMP '2024-06-01 12:00:00');

-- Результат: 1717204800



Подробнее:
- Можно использовать с типами timestamp, timestamptz (в этом случае учитывается часовой пояс).
- Часто используется в вычислениях для определения интервалов и временных меток.
2