У меня есть таблица, которая выглядит так
я бы |
---|
1 |
2 |
4 |
5 |
6 |
10 |
11 |
Итак, куча последовательных значений, неизвестное количество отсутствующих полей, а затем другие последовательные значения. Чего я пытаюсь достичь, так это получить
я бы | ограничение |
---|---|
1 | 0 |
2 | 0 |
4 | 1 |
5 | 1 |
6 | 1 |
10 | 2 |
11 | 2 |
Увеличивая каждый раз номер интервала, который я могу позже использовать для суммирования по другим столбцам. Является ли это возможным? Спасибо
Если ваша версия MySQL поддерживает оконную функцию.
Вы можете попробовать использовать оконную функцию LAG
в подзапросе, чтобы получить предыдущий столбец id
, а затем использовать оконную функцию агрегата условий SUM
.
Запрос №1
SELECT Id,
SUM(id - n_Id > 1) OVER(ORDER BY id) stint
FROM (
SELECT *,LAG(id,1,id) OVER(ORDER BY id) n_Id
FROM T
) t1
Идентификатор | ограничение |
---|---|
1 | 0 |
2 | 0 |
4 | 1 |
5 | 1 |
6 | 1 |
10 | 2 |
11 | 2 |