SQLite检查没有循环的类别
Sqlite checking for cateory without loop
假设我 table 是这样的:
id ; cat ; val_2 ; val_3
1 ; 1 ; 40 ; 80
2 ; 1 ; 60 ; 90
3 ; 2 ; 10 ; 120
4 ; 2 ; 30 ; 100
5 ; 3 ; 20 ; 40
5 ; 3 ; 40 ; 70
5 ; 3 ; 50 ; 60
现在,我需要对每个类别的猫进行操作,但不像 sum 和 group by 那样,我需要检查 val_2 和 val_2 之间的每一行 val_3 ] 在下一行。所以:
(LAG(val_2) OVER() BETWEEN val_2 AND val_3) OR
(LEAD(val_2) OVER() BETWEEN val_2 AND val_3)
但是每个类别分别怎么做呢?
您可以添加一个 partition by
子句:
(LAG(val_2) OVER(PARTITION BY cat ORDER BY id) BETWEEN val_2 AND val_3) OR
(LEAD(val_2) OVER(PARTITION BY cat ORDER BY id) BETWEEN val_2 AND val_3)