Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 日期/日历表中连续交易假日的最大数量_Sql_Sql Server_Azure Sql Database_Azure Sql Server - Fatal编程技术网

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