Теперь я включаю в себя некоторый параллелизм с моим приложением ProcessXX
, я не уверен, что данные могут быть в правильном порядке. Поэтому Im работает в запросе, чтобы вернуть нижний и верхний пределы, чтобы перейти к ProcessZZ
.Как рассчитать промежутки между строками
Моя таблица avl_pool имеет avl_id
и has_link
и некоторые другие области и постоянный поток данных, когда новые данные прибывают они начинают с has_link=null
, когда ProcessX
отделки с рядами has_link
имеет значение xxxx
ссылки некоторое число.
Теперь на следующем этапе мне нужно обработать только те строки со ссылками, но я не могу пропустить строки, потому что порядок очень важен.
В этом случае мне нужно ProcessZZ(23561211, 23561219)
rn | avl_id | has_link
1 | 23561211 | xxxx -- start
2 | 23561212 | xxxx
3 | 23561213 | xxxx
4 | 23561214 | xxxx
5 | 23561215 | xxxx
6 | 23561216 | xxxx
7 | 23561217 | xxxx
8 | 23561218 | xxxx
9 | 23561219 | xxxx -- end
10 | 23561220 | null
11 | 23561221 | xxxx
12 | 23561222 | xxxx
13 | 23561223 | xxxx
В настоящее время у меня есть:
-- starting avl_id need to be send to ProcessZZ
SELECT MIN(avl_id) as min_avl_id
FROM avl_db.avl_pool
WHERE NOT has_link IS NULL
-- first avl_id still on hands of ProcessXX (but can be null)
SELECT MIN(avl_id) as max_avl_id -- here need add a LAG
FROM avl_db.avl_pool
WHERE has_link IS NULL
AND avl_id > (SELECT MIN(avl_id)
FROM avl_db.avl_pool
WHERE NOT has_link IS NULL)
-- In case everyone has_link already the upper limit is the last one on the table.
SELECT MAX(avl_id) as max_avl_id
FROM avl_db.avl_pool
Я могу поставить Everthing в Muliple КТР и вернуть оба результата, но я думаю, что это может быть ручка, как какой-нибудь остров , но не уверен, как это сделать.
Так запрос должен выглядеть
SELECT min_avl_id, min_avl_id
FROM cte
min_avl_id | min_avl_id
23561211 | 23561219
Можете ли вы изменить свой вопрос и показать, какие результаты вы ищете? –
В этом случае мне нужны два столбца со значениями '23561211, 23561219' –