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

请求编写SQL查询按指定早间/晚间时段统计数据

按指定时段汇总统计数据的SQL实现

需求说明

需从data表中按以下两个时段汇总数据计数:

  • 早间:7:30 至 19:30
  • 晚间:19:30 至次日7:30

原查询按小时分组统计,现需调整为按上述两个时段分组汇总。

表结构

Tablename: data
----------------
created_date     services_name   id
28-08-2022 18:54    KANE         1
28-08-2022 19:00    BAPLO        2
28-08-2022 23:22    BAPLO        3
28-08-2022 23:40    VLOTLS       4
29-08-2022 00:02    DELLP        5
29-08-2022 00:42    SECON        6
29-08-2022 02:00    BAPLO        7
29-08-2022 03:00    PRODC        8
29-08-2022 05:14    DELLP        9
29-08-2022 05:30    SECON        10
29-08-2022 05:42    SECON        11

现有查询语句

SELECT 
  CONCAT( HOUR(created_date),  ' to ', CONCAT( HOUR(created_date), ':59:59' ) ) as time_frame,
  COUNT(*) 
FROM 
  data
GROUP BY 
  DATE(created_date), 
  HOUR(created_date)
ORDER BY
  DATE(created_date), 
  HOUR(created_date)

现有查询结果

0 to 0:59:59    2
2 to 2:59:59    1
3 to 3:59:59    1
5 to 5:59:59    3
18 to 18:59:59  1
19 to 19:59:59  1
23 to 23:59:59  2

解决方案SQL语句

SELECT
  CASE
    WHEN TIME(created_date) BETWEEN '07:30:00' AND '19:29:59' THEN '早间(7:30至19:30)'
    ELSE '晚间(19:30至次日7:30)'
  END AS time_period,
  COUNT(*) AS count
FROM data
GROUP BY time_period
ORDER BY count;

语句说明

  • 利用TIME(created_date)提取字段的时间部分,通过BETWEEN判断是否属于早间时段(设置19:29:59为早间结束边界,确保19:30及之后的时间被归入晚间)
  • 通过CASE语句将每条记录映射到对应的时段分组,最终按时段汇总计数

期望查询结果

早间(7:30至19:30)    2
晚间(19:30至次日7:30) 9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:25:20