Sql 日期/日历表中连续交易假日的最大数量
我试图从交易日期/日历表中找到连续交易假期的最大数量。我在Sql 日期/日历表中连续交易假日的最大数量,sql,sql-server,azure-sql-database,azure-sql-server,Sql,Sql Server,Azure Sql Database,Azure Sql Server,我试图从交易日期/日历表中找到连续交易假期的最大数量。我在TradingDate表中有一个标志isTradingHoliday=1,表示交易假日的日期,否则isTradingHoliday=0。如何知道该TradingDate表中哪个日期范围是最连续的交易假日 这听起来像是一个缺口和孤岛问题。您可以使用行号的差来查找第一个日期和天数。其余部分是聚合和筛选: select top (1) with ties min(tradingdate) as startdate, max(tra
TradingDate
表中有一个标志isTradingHoliday=1
,表示交易假日的日期,否则isTradingHoliday=0
。如何知道该TradingDate
表中哪个日期范围是最连续的交易假日 这听起来像是一个缺口和孤岛问题。您可以使用行号的差来查找第一个日期和天数。其余部分是聚合和筛选:
select top (1) with ties min(tradingdate) as startdate,
max(tradingdate) as enddate
from (select c.*,
row_number() over (order by tradingdate) as seqnum,
row_number() over (partition by isTradingHoliday order by tradingdate) as seqnum_h
from calendar c
) c
where isTradingHoliday = 1
group by isTradingHoliday, (seqnum - seqnum_h)
order by count(*) desc