gpt4 book ai didi

sql - 如何计算 SQL Server 列中某个值连续出现的次数

转载 作者:行者123 更新时间:2023-12-03 02:58:29 28 4
gpt4 key购买 nike

我的数据库中有一个表出勤

Date       | Present
------------------------
20/11/2013 | Y
21/11/2013 | Y
22/11/2013 | N
23/11/2013 | Y
24/11/2013 | Y
25/11/2013 | Y
26/11/2013 | Y
27/11/2013 | N
28/11/2013 | Y

我想计算值YN最连续出现的次数。

例如,在上表中,Y 出现2、4 和 1 次。所以我想要 4 作为我的结果。如何在 SQL Server 中实现这一点?

任何帮助将不胜感激。

最佳答案

试试这个:-

连续日期之间的差异将保持不变

   Select max(Sequence)
from
(
select present ,count(*) as Sequence,
min(date) as MinDt, max(date) as MaxDt
from (
select t.Present,t.Date,
dateadd(day,
-(row_number() over (partition by present order by date))
,date
) as grp
from Table1 t
) t
group by present, grp
)a
where Present ='Y'

SQL FIDDLE

关于sql - 如何计算 SQL Server 列中某个值连续出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472483/

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