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

SQL按日期(忽略时分秒)分组汇总数据问题求助

解决按日期(天)分组汇总的SQL问题

问题核心:你的查询中GROUP BY (Datum)使用了包含时分秒的原始日期字段,导致同一天不同时间的数据被单独分组,无法实现按天汇总。

修正后的查询语句

方案1:与SELECT逻辑保持一致的分组

SELECT FORMAT(Datum, 'dd/MM/yyyy', 'de-DE') AS Datum, SUM(weight) AS total_weight
FROM [Produktionsdaten].[dbo].[produktionedelstahl]
WHERE Anlage IN ('Bonak 2')
  AND YEAR(Datum) = YEAR(CURRENT_TIMESTAMP)
  AND MONTH(Datum) = MONTH(CURRENT_TIMESTAMP)
GROUP BY FORMAT(Datum, 'dd/MM/yyyy', 'de-DE')

方案2:更高效的日期提取与范围查询

SELECT FORMAT(CAST(Datum AS DATE), 'dd-MM-yyyy') AS Datum, SUM(weight) AS total_weight
FROM [Produktionsdaten].[dbo].[produktionedelstahl]
WHERE Anlage IN ('Bonak 2')
  AND Datum >= DATEFROMPARTS(YEAR(CURRENT_TIMESTAMP), MONTH(CURRENT_TIMESTAMP), 1)
  AND Datum < DATEADD(MONTH, 1, DATEFROMPARTS(YEAR(CURRENT_TIMESTAMP), MONTH(CURRENT_TIMESTAMP), 1))
GROUP BY CAST(Datum AS DATE)

说明

  1. 方案1:让GROUP BY和SELECT中的日期格式化逻辑完全匹配,确保分组依据是去除时分秒后的日期字符串,同一天的数据会被归为一组。
  2. 方案2:
    • 使用CAST(Datum AS DATE)直接提取日期部分(自动去除时分秒),分组逻辑更高效;
    • 优化WHERE条件为日期范围查询,替代原有的YEAR()和MONTH()函数调用,这样可以利用Datum字段上的索引,大幅提升查询性能;
    • 通过FORMAT()函数将日期转换为你需要的dd-MM-yyyy格式。

内容的提问来源于stack exchange,提问作者Rene Stäblein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:05:37