当前位置: 首页 > news >正文

MySQL 统计每个时间段的数量

数据库存放数据如下:

SELECT t.start_time,t.end_time FROM vipsoft_order t

image

MySQL

SELECT CONCAT(LPAD(hour_range, 2, '0'), ':00~', LPAD(hour_range + 1, 2, '0'), ':00') as time_period,SUM(CASE WHEN HOUR(start_time) = hour_range THEN 1 ELSE 0 END) as start_count,SUM(CASE WHEN HOUR(end_time) = hour_range THEN 1 ELSE 0 END) as end_count
FROM vipsoft_order,(SELECT 0 as hour_range UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9UNION SELECT 10 UNION SELECT 11 UNION SELECT 12 UNION SELECT 13 UNION SELECT 14UNION SELECT 15 UNION SELECT 16 UNION SELECT 17 UNION SELECT 18 UNION SELECT 19UNION SELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23) hours
GROUP BY hour_range
ORDER BY hour_range;

PostgreSQL版本

SELECT TO_CHAR(hour_range, '00') || ':00~' || TO_CHAR(hour_range + 1, '00') || ':00' as time_period,COUNT(CASE WHEN EXTRACT(HOUR FROM start_time) = hour_range THEN 1 END) as start_count,COUNT(CASE WHEN EXTRACT(HOUR FROM end_time) = hour_range THEN 1 END) as end_count
FROM generate_series(0, 23) as hour_range
LEFT JOIN custody_order ON EXTRACT(HOUR FROM start_time) = hour_range OR EXTRACT(HOUR FROM end_time) = hour_range
GROUP BY hour_range
ORDER BY hour_range;

关键点说明:

  1. 小时范围生成:创建0-23的小时序列
  2. 时间格式化:将小时格式化为08:00~09:00的格式
  3. 计数逻辑
    • start_count:统计start_time小时等于当前时段的记录
    • end_count:统计end_time小时等于当前时段的记录
  4. 处理NULL值:使用LEFT JOIN确保即使某个时段没有数据也会显示0

这样您就能得到按小时分组的开始和结束数量统计了。

http://www.gsyq.cn/news/41433.html

相关文章:

  • 2025年靠谱的干冰清洗设备用户口碑最好的厂家榜
  • locust压测命令行压测报告
  • 2025年靠谱的散热器哪家好?电脑散热器生产厂排名全解析
  • 2025年自建房门窗生产厂家权威推荐榜单:封包阳台窗/性价比门窗/断桥铝门窗源头厂家精选
  • 2025年评价高的油雾空气过滤器TOP实力厂家推荐榜
  • 2025年质量好的胶水厂家最新权威实力榜
  • 2025年靠谱的卷制轴承厂家推荐及采购指南
  • 2025年石棉橡胶板厂家联系电话推荐:高效对接省心攻略
  • 2025年深圳婚姻纠纷律师联系电话推荐:专业高效解决家事难题
  • 2025年靠谱的二线品牌床上用品优选推荐榜
  • 2025年深圳婚姻纠纷律师联系电话推荐:精选推荐与使用指南
  • 2025年11月维生素D3品牌推荐榜:健敏思领衔五强对比评测
  • 2025年比较好的全屋定制静音轨道厂家推荐及选择指南
  • 3434
  • 2025-11-06 早报新闻
  • 2025年11月北京口腔牙科医院评测榜:五强院区服务与价格对比
  • 2025年11月北京儿牙医院榜单:五家院区实力与口碑全面对比
  • 2025年6月北京GEO优化公司权威榜:五强对比评测助你决策
  • 2025年11月上海激光脱毛机构优选榜:私立专科全面评测与排名
  • 2025年5月GEO优化服务商优选榜:五强评测与关键指标对比
  • 2025年11月办公家具公司评测榜:资质环保性能综合排行
  • 2025年【珠海爱尔眼科医院】权威深度解析:全生命周期眼健康服务推荐盘点
  • 2025年揭秘珠海爱尔眼科医院:湾区全生命周期眼科服务深度推荐解析
  • 2025年6月GEO服务商权威榜:五强对比评测与选型指南
  • Tailscale 虚拟局域网 安装
  • [转]Register an application
  • [转]Adobe Marketo 向 Azure 註冊應用程式,以取得用戶端 ID/應用程式 ID
  • pyslam - MKT
  • 【Linux dbus】2-dbus发送消息(以创建方法调用为例)的过程
  • CSP-S 2025 复赛解析