Завершить практикум 10
Доработайте задачи из занятия 39, если они не были завершены на занятии.
Summary session 10 повторяет два блока оконных функций: ранжирование и смещение/выбор.
Для ранжирования используем ROW_NUMBER, RANK, DENSE_RANK, NTILE.
Для сравнения соседних строк используем LAG и LEAD; для крайних значений — FIRST_VALUE и LAST_VALUE.
Минимальный пример: DENSE_RANK() OVER (ORDER BY quantity DESC) строит рейтинг по количеству, а LAG(date_received) OVER (ORDER BY date_received) находит предыдущую дату.
Топ-3 ошибки: путать RANK и DENSE_RANK, забывать ORDER BY в окне, фильтровать результат окна до внешнего SELECT.
Доработайте задачи из занятия 39, если они не были завершены на занятии.
Для каждой формулировки выберите функцию: предыдущая дата, топ-5, 13-я строка, минимальная цена заказа, квартиль продаж.
Покажите на примере, почему RANK может пропускать номер, а DENSE_RANK — нет.
Повторите запросы по purchase_order_details: соседние inventory_id, минимум/максимум цены, ранги quantity.
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Какая функция даёт уникальный номер строки?
Какая функция возвращает предыдущую строку окна?
Чем DENSE_RANK отличается от RANK?
Что делает NTILE(4)?
Какая функция подходит для следующей даты?
Где фильтровать rank <= 10?
Когда FIRST_VALUE вернёт минимальную цену?
Что определяет PARTITION BY?