gpt4 book ai didi

sql - 计算postgresql中排序子组的数量

转载 作者:行者123 更新时间:2023-11-29 12:38:07 25 4
gpt4 key购买 nike

我想统计下表中已排序子组的数量:

id  nmb
1 11
2 12
3 13
4 22
5 23
6 31
7 32
8 33
9 11
10 12
11 13
12 12
13 13
14 21
15 22
16 11
17 12
18 13
19 14

并且想在 postgresql 8.4 中获得这样的东西:

id  nmb local  
1 11 1
2 12 1
3 13 1
4 22 1
5 23 1
6 31 1
7 32 1
8 33 1
9 11 2
10 12 2
11 13 2
12 12 3
13 13 3
14 21 3
15 22 3
16 11 4
17 12 4
18 13 4
19 14 4

编辑:“本地”列中的最后几个数字是错误的。更正!

谢谢。

最佳答案

虽然我终于明白你想要什么,连续增长的值(value):

select id, nmb,
sum(flag)
over (order by id
rows unbounded preceding) as local
from
(
select
id, nmb,
case
when lag(nmb)
over (order by id) < nmb
then 0
else 1
end as flag
from t
) as dt
order by id

但是第4组不适合

编辑:现在它们适合 :-)

关于sql - 计算postgresql中排序子组的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com