簡體   English   中英

Postgres交替組查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM