tgoop.com/sqlhub/1995
Create:
Last Update:
Last Update:
Продвинутый SQL-трюк: Как одним запросом вытащить только самую последнюю запись по каждой группе — и при этом сохранить все остальные поля
Если ты хочешь, например, получить последний заказ по каждому клиенту, но у тебя нет оконных функций или ты хочешь максимально производительный запрос — вот чистый, понятный способ.
-- Найдём последнюю покупку по каждому customer_id
SELECT o.*
FROM orders o
JOIN (
SELECT customer_id, MAX(order_date) AS max_date
FROM orders
GROUP BY customer_id
) latest
ON o.customer_id = latest.customer_id
AND o.order_date = latest.max_date;
-- Работает даже если в таблице десятки миллионов строк, индекс на order_date и customer_id ускорит запрос
@sqlhub
BY Data Science. SQL hub
Share with your friend now:
tgoop.com/sqlhub/1995