写个SQL,统计数据表time中每个小时记录数

参考:Mysql 查询一天中,每个小时数据的数量 作者:刘宇LY

  • 给出数据
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `test`;

/*Table structure for table `time` */

DROP TABLE IF EXISTS `time`;

CREATE TABLE `time` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `p_date` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

/*Data for the table `time` */

insert  into `time`(`id`,`p_date`) values 

(1,'2020-08-29 00:10:10'),

(2,'2020-08-29 01:10:10'),

(3,'2020-08-29 01:10:10'),

(4,'2020-08-29 02:10:10'),

(5,'2020-08-30 02:10:10'),

(6,'2020-08-30 19:10:10');

实现的sql语句

SELECT HOUR(e.p_date) AS 小时,COUNT(*) AS 记录数
FROM `time` e
WHERE e.`p_date` LIKE '2020-08-30%'
GROUP BY HOUR(e.p_date) ORDER BY HOUR(e.p_date);
  • 结果
    在这里插入图片描述
  • HOUR(时间)的作用
    在这里插入图片描述
  • 如果日期改为29号
    在这里插入图片描述
  • 如果不加日期限制,把where条件删除
    在这里插入图片描述
  • 注意点:
  • 为什么不能这样显示:具体某一天,对应24小时各有多少记录数作为三列显示
  • 因为如果按天来分组,一天的24小时将被挤扁了。而如果按小时分组还想看到天作为一列,某一天会被撕成24份。
  • 如图在这里插入图片描述
  • 如果没有日期条件得到的是按小时来分析的数据(可以用来查看高峰期是什么时候)
  • 如果日期(年月日)和时间(时分秒)分开作为两列,sql类似
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值