Разберите механизм, из-за которого результат оконной функции нельзя напрямую использовать в обычной фильтрации того же уровня запроса.
База Hintsage
Агрегация и оконные функции
GROUP BY, HAVING, агрегаты, оконные функции и аналитические запросы.
Практика
Вопросы: Агрегация и оконные функции
Как выбрать одну самую свежую запись для каждого клиента, сохранив остальные столбцы этой записи?
Вам нужно отобрать только те группы, для которых результат агрегирования удовлетворяет условию. На каком этапе запроса должен применяться такой фильтр и почему?
Сравните оконный агрегат с GROUP BY: как получить общую сумму по набору, сохранив в результате каждую исходную строку?
Объясните механизм: почему столбец, не участвующий в агрегате, нельзя произвольно вывести вместе с результатом GROUP BY?
Представьте, что накопительный итог в отчёте изменяется сразу у нескольких строк с одинаковой датой. Какой механизм оконного кадра это объясняет?
В таблице заказов часть значений суммы равна NULL: чем будет отличаться подсчёт строк от суммирования этого столбца?
В отчёте после добавления группировки число строк резко уменьшилось. Какой механизм определяет новое количество строк результата?
В рейтинге два участника делят второе место, но следующий должен получить третье, а не четвёртое. Какую семантику ранжирования следует выбрать?
В отчёте требуется показать долю каждой группы в общем итоге без потери строк групп; какой порядок вычислений обеспечит корректный знаменатель?
После соединения заказов с позициями агрегированная выручка стала завышенной: какой механизм приводит к этому результату?
При группировке по столбцу с NULL несколько строк с NULL попадут в одну группу или в разные?
В отчёте сумма числа уникальных клиентов по регионам оказалась больше общего числа уникальных клиентов. Какой принцип агрегации объясняет расхождение?
Что объясняет ситуацию, когда порядок строк, заданный для вычисления оконной функции, не совпадает с порядком строк в итоговой выдаче?
В отчёте оконная функция указана без разбиения на группы. Как отсутствие PARTITION BY меняет область строк, доступную этой функции?
В аналитическом запросе оконная функция указана после GROUP BY: над какими строками она фактически работает — исходными или уже сгруппированными?
В практическом отчёте нужно посчитать общее число заказов и отдельно число заказов на сумму от 100, не теряя регионы без таких заказов. Какой результат даст запрос и почему условие стоит внутри агрегата?
WITH sales(region, amount) AS (
VALUES
('Север', 120),
('Север', 80),
('Юг', 40),
('Юг', 60)
)
SELECT
region,
COUNT(*) AS orders_total,
SUM(CASE WHEN amount >= 100 THEN 1 ELSE 0 END) AS large_orders
FROM sales
GROUP BY region;
Среднее средних по подразделениям даёт корректный общий показатель в каком случае?
При построении отчёта с промежуточными итогами как отличить строку итога по всем данным от реальной группы, у которой ключ имеет NULL?
Что означает HAVING без GROUP BY в агрегатном запросе?
Показано 1–20 из 50