TGViewer
Data Science. SQL hub Data Science. SQL hub @sqlhub · 36K subscribers
Post #2104 6.24K
🧩 SQL полезный приём

Нужно выбрать из таблицы записи с максимальным или минимальным значением по группе?
Вместо вложенных подзапросов удобно использовать оконные функции.

Пример: найти для каждого пользователя его последний заказ.


WITH ranked AS (
SELECT
user_id,
order_id,
order_date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS rn
FROM orders
)
SELECT user_id, order_id, order_date
FROM ranked
WHERE rn = 1;


📌 Как это работает:

PARTITION BY user_id делит данные по пользователям

ORDER BY order_date DESC сортирует заказы от нового к старому

ROW_NUMBER() присваивает каждой записи номер в рамках группы

WHERE rn = 1 берёт только последний заказ для каждого пользователя

💡 Такой подход легко адаптируется: можно выбирать первый/последний элемент в группе, топ-N значений или фильтровать дубликаты.

@sqlhub
  • ❤ 17
  • 👍 11
  • 🔥 4
More from @sqlhub
  1. Sep 24, 2026Softmax простыми словами: что значат 66,5% в ответе нейросети? Softmax простыми словами: C…
  2. Sep 24, 2026🔥Один слой данных вместо цепочки копий между системами В традиционной аналитической инфра…
  3. Sep 23, 2026⚡️ SQL-задача с опасным подвохом Какой баланс получит аккаунт после выполнения запроса в P…
  4. Sep 22, 2026🌟 Samsone: открытые аудиоязыковые модели для смартфонов Samsung опубликовали Samsone - се…
  5. Sep 22, 2026Объектное хранилище в эпоху быстрых данных Объём данных, с которыми нужно работать, растёт…
  6. Sep 21, 2026🧩 Сложная SQL-задача: симуляция DNS-кеша Есть таблица запросов: CREATE TABLE dns_requests…
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 →