TGViewer
Аналитика данных / Data Study Аналитика данных / Data Study @data_study · 9.46K subscribers
Post #1483 1.19K
Кейс с собеседований на SQL

В истории заказов хранится несколько строк на один order_id с разными статусами и датами обновления. Необходимо оставить строки с последним актуальным статусом, не применяя JOIN.

➡️ Решение: используем ROW_NUMBER(), чтобы пронумеровать версии по дате и взять последнюю актуальную

WITH ranked_orders AS (
SELECT
*,
ROW_NUMBER() OVER (
PARTITION BY order_id
ORDER BY updated_at DESC
) AS rn
FROM orders_history
)
SELECT
order_id,
status,
updated_at,
amount
FROM ranked_orders
WHERE rn = 1;


Оконные функции всегда помогают в работе с историческими данными, выявлением актуальной строки, удалением дублей, а также задачами версионирования строк.

Ставьте реакции, если стоит делиться больше задачами с собесов аналитиков и аналитиков-инженеров

Больше технических заданий на курсе - старт 14 сентября
  • ❤ 29
  • 🔥 12
  • 👍 5
More from @data_study
  1. Sep 22, 2026Задумываетесь ли вы, что AI-агенты уже сейчас сами принимают решения в физическом мире? И…
  2. Sep 21, 2026Команда DevCrowd запустила ежегодное исследование специалистов по работе с данными. В этом…
  3. Sep 20, 2026🎯 Задача с собеседования Есть таблица transactions с транзакциями клиентов. Для каждого к…
  4. Sep 18, 2026Автоматизация процессов - одна из самых популярных задач аналитиков, это подтверждают и оп…
  5. Sep 16, 2026«Пока отложу обучение, т.к. нет сейчас возможности применять это на работе» ➡️А может ты н…
  6. Sep 16, 2026простая уловка с алиасами колонок в SQL дело в том, что обычно СУБД названия столбцов табл…
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 →