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

如何在SQL中按周一至周五每小时维度聚合统计请求数量

问题原因

原有语句使用DATENAME(WEEK, CreatedOn)(同DATENAME(WK, CreatedOn))获取的是日期属于当年的第几周,因此分组逻辑是按不同周次拆分统计,无法跨周聚合同一星期几的同时段数据。

调整后SQL(兼容原有SQL Server语法)

-- 如需强制返回中文星期名称,可先执行以下语句: SET LANGUAGE '简体中文'
SELECT
  DATENAME(WEEKDAY, CreatedOn) AS 星期几,
  DATEPART(HOUR, CreatedOn) AS 小时,
  COUNT(*) AS 对应请求数
FROM [Enterprise32].[dbo].[nav_EmailEstimateRequests]
WHERE CreatedOn > '2021-01-01'
-- 筛选周一到周五(SQL Server默认周日为1、周六为7,2-6对应周一到周五)
AND DATEPART(WEEKDAY, CreatedOn) BETWEEN 2 AND 6
GROUP BY DATENAME(WEEKDAY, CreatedOn), DATEPART(HOUR, CreatedOn), DATEPART(WEEKDAY, CreatedOn)
-- 按星期顺序、小时顺序排序,输出更符合阅读习惯
ORDER BY DATEPART(WEEKDAY, CreatedOn), DATEPART(HOUR, CreatedOn);

核心改动说明

  • 把原周次获取逻辑替换为DATENAME(WEEKDAY, CreatedOn),直接获取日期对应的星期几名称,实现跨周同星期几的聚合
  • 新增工作日过滤条件,自动筛除周六周日的数据,符合需求限定的统计范围
  • 分组字段调整为「星期几+小时」,所有跨周的同一星期几同时段数据会合并统计
  • 排序逻辑调整为按星期几的数字顺序、小时顺序排序,避免输出结果顺序混乱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:45:03