GROUP BY сворачивает строки в группы, а PARTITION BY в оконной функции сохраняет строки и задаёт набор для вычисления значения у каждой из них.
Чем PARTITION BY отличается от GROUP BY для подзапроса?
GROUP BY сворачивает строки в группы, а PARTITION BY в оконной функции сохраняет строки и задаёт набор для вычисления значения у каждой из них.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
GROUP BY сворачивает строки в группы, а PARTITION BY в оконной функции сохраняет строки и задаёт набор для вычисления значения у каждой из них.
Например, SUM(amount) OVER (PARTITION BY user_id) добавляет сумму заказов пользователя к каждой его строке. GROUP BY user_id возвращает одну строку на пользователя. Вложенный подзапрос не меняет эту разницу; ORDER BY внутри окна также может менять рамку и смысл суммы.