Посчитать количество подряд идущих одинаковых записей SQL
Date | Time | Check |
---|---|---|
2023-04-07 | 11:00 | true |
2023-04-07 | 12:00 | true |
2023-04-07 | 13:00 | false |
2023-04-07 | 14:00 | false |
2023-04-07 | 15:00 | true |
Из такой таблицы нужно получить следующую:
Date | Time | Check | Count |
---|---|---|---|
2023-04-07 | 11:00 | true | 1 |
2023-04-07 | 12:00 | true | 2 |
2023-04-07 | 13:00 | false | 1 |
2023-04-07 | 14:00 | false | 2 |
2023-04-07 | 15:00 | true | 1 |
Либо такую, т е максимальное количество идущих подряд одинаковых записей для каждого дня по колонке чек.
Date | Check | Count |
---|---|---|
2023-04-07 | true | 2 |
2023-04-07 | false | 2 |
В стартовой таблице идёт сортировка по дате времени и чеку.
Если сделаю ROW_NUMBERS() OVER (PARTITION BY DATE) AS Count
, получу в итоге просто 1, 2, 3, 4, 5 в 4й колонке.
Если PARTITION BY DATE, Check
, то он отсортирует по дате, а потом по чеку, в итоге получу тоже не то, что нужно. Как сделать, чтобы сортировка была по дате и времени, но при этом подсчет одинаковых подряд записей шёл по дате и чеку?