У меня есть выбор, где мне нужно определить группы значений в диапазоне. Но выбор работает ненадежно. У меня проблема с его внутренней частью, где я использую CASE WHEN
... цель состоит в том, чтобы пометить каждую непрерывную серию значений уникальным значением группировки. Я ожидаю этого:
КОГДА значение столбца находится в диапазоне, тогда не меняйте номер группы
В противном случае увеличьте номер группы на один
Я не знаю, что не так. Спасибо всем за советы.
SELECT *
, CASE WHEN value >= 17 AND value <= 18 THEN @x=@x ELSE @x=@x+1 END grp
FROM my_table
Я ожидаю:
value grp
18.9607 0
17.8623 1
17.0396 1
19.8252 2
19.746 3
Но я получаю:
value grp
18.9607 null
17.8623 null
17.0396 null
19.8252 null
19.746 null
фактически все значения grp равны нулю