[英]Postgres alternating group query
鑒於我有一張桌子:
my_table
id INT
bool BOOLEAN
和一些數據:
1, true
2, true
3, false
4, true
5, true
6, false
7, false
8, false
9, true
...
如何SELECT
僅查找當前行ID和上一行ID之間的bool
值有變化的行?
在這種情況下,我希望結果看起來像這樣:
1, true
3, false
4, true
6, false
9, true
...
您可以使用lag()
:
select t.*
from (select t.*, lag(bool) over (order by id) as prev_bool
from mytable t
) t
where t.bool <> prev_bool;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.