-
Базовый синтаксис:
SELECT column1, column2, ..., columnN FROM table_name PARTITION BY column1, column2, ..., columnN ORDER BY column1, column2, ..., columnN; -
Пример. Вычисление номеров строк внутри разделов:
SELECT column1, column2, ..., columnN, ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2) AS row_number FROM table_name; -
Пример. Вычисление совокупных сумм внутри разделов:
SELECT column1, column2, ..., columnN, SUM(columnN) OVER (PARTITION BY column1 ORDER BY column2) AS cumulative_sum FROM table_name; -
Пример: найти первую и последнюю записи в разделах:
SELECT column1, column2, ..., columnN FROM ( SELECT column1, column2, ..., columnN, ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2) AS row_number, COUNT(*) OVER (PARTITION BY column1) AS total_rows FROM table_name ) AS subquery WHERE row_number = 1 OR row_number = total_rows; -
Пример. Вычисление средних значений внутри разделов:
SELECT column1, column2, ..., columnN, AVG(columnN) OVER (PARTITION BY column1 ORDER BY column2) AS average_value FROM table_name;