Максимальное значение по категории в последовательности в SQL - PullRequest
0 голосов
/ 10 сентября 2018

Я некоторое время пытался найти решение этой проблемы, но безуспешно. Я использую SQL Server 2012, и мне было интересно, что я могу сделать, чтобы получить максимальное значение столбца 'row_num_by_cat' по 'id' иРаздел 'cat' только до тех пор, пока в столбце 'cat' не будет найдено другое значение или пока в столбце 'row_num_by_cat' не начнется новая последовательность.Колонка «new_count_max» желтого цвета показывает, что я ищу.

Ваша помощь будет оценена.

data sample

1 Ответ

0 голосов
/ 10 сентября 2018

Вы можете использовать MAX(row_num) OVER:

WITH cte AS (
  SELECT *,SUM(CASE WHEN row_num > 1 THEN 0 ELSE 1 END) 
         OVER(PARTITION BY id, cat ORDER BY date_col) AS grp
  FROM tab
)
SELECT *, MAX(row_num) OVER(PARTITION BY id, cat, grp) AS new_count_max
FROM cte
ORDER BY id, date_col, cat;

Rextester Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...