SQL Server单表查询:按分类获取StartDate最小值与EndDate最大值
SQL Server按类别分组获取日期范围的解决方案
嘿,这个需求很常见,用基础的分组聚合操作就能轻松搞定!你只需要结合GROUP BY子句和日期相关的聚合函数,就能得到每个类别最早的开始日期和最晚的结束日期。
实现SQL代码
SELECT Category, MIN(StartDate) AS StartDate, MAX(EndDate) AS EndDate FROM YourTableName -- 记得替换成你的实际表名 GROUP BY Category ORDER BY Category; -- 可选排序,让结果更规整
代码说明
MIN(StartDate):会自动找出每个Category分组里最早的开始日期MAX(EndDate):会自动找出每个Category分组里最晚的结束日期GROUP BY Category:确保所有聚合计算都是按类别分组进行的
模拟数据
Category StartDate EndDate ------------------------------- A 1/1/2018 1/11/2018 A 1/3/2018 1/13/2018 B 1/1/2018 1/11/2018 B 1/9/2018 1/19/2018 A 1/5/2018 1/15/2018 C 1/4/2018 1/14/2018 A 1/1/2018 1/11/2018 C 1/7/2018 1/17/2018
执行后期望结果
Category StartDate EndDate -------------------------------- A 1/1/2018 1/15/2018 B 1/1/2018 1/19/2018 C 1/4/2018 1/17/2018
内容的提问来源于stack exchange,提问作者mjordan
相关产品推荐
相关产品推荐

