You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 如何筛选仅包含连续日期的分类?

SQL Server 筛选全日期连续的分类实现方案

核心逻辑

判断分类下所有日期是否连续的规则为:同一个分类下,最早日期到最晚日期的自然总天数 = 该分类下的日期数量(单条日期默认符合要求)。

实现代码

假设你的表名为YourTable,可直接使用以下查询:

SELECT Category
FROM YourTable
GROUP BY Category
HAVING DATEDIFF(DAY, MIN([Date]), MAX([Date])) + 1 = COUNT(DISTINCT [Date])
ORDER BY Category

说明

  1. 先按Category字段分组,对每个分类单独统计指标
  2. DATEDIFF(DAY, MIN([Date]), MAX([Date])) + 1:计算该分类下最早日期到最晚日期之间的总自然天数
  3. COUNT(DISTINCT [Date]):统计该分类下非重复的日期数量,避免同一天存在多条数据导致统计偏差;如果你的业务已保证同一个分类同一天只有一条记录,可以去掉DISTINCT提升查询性能
  4. 当两个指标相等时,说明该分类下的所有日期完全连续,符合筛选要求
    针对你提供的示例数据执行上述查询,将直接返回Category为1、3、4的结果,和预期输出完全一致。

内容的提问来源于stack exchange,提问作者Maor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 13:27:03