mysql:按不同时间粒度分组聚合

Posted live4m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql:按不同时间粒度分组聚合相关的知识,希望对你有一定的参考价值。


前置知识:

设date1是日期,格式形如'2001-02-03 04:05:06'

DATE()返回日期,
DATE(date1)的结果为'2001-02-03'

日期:DATE()
年:year()
月:MONTH()
日:DAY()
时:HOUR()
分:MINUTE()
秒:SECOND()
星期:WEEK()

DATE_FORMAT()格式化函数
DATE_FORMAT(date1,'%Y.%m.%d %H:%M:%S')的结果为'2001.02.03 04:05:06'

按不同时间粒度分组聚合,以半小时聚合为例:

select
	DATE_FORMAT(concat(DATE(date),' ',
		HOUR(date),':',floor(MINUTE(date/30))*30,
			'%Y-%m-%d %H:%M') AS date1,
	count(*)
from
	表
group by date1

其他时间粒度写法类似。


以上是关于mysql:按不同时间粒度分组聚合的主要内容,如果未能解决你的问题,请参考以下文章

Mysql按聚合排序和限制分组[重复]

按同一列分组,但以两种不同的方式聚合

MySQL:JSON 列值聚合到按属性分组的单个 JSON 对象中

R把天数据按照不同时间粒度聚合数据(Aggregate)

如何对多个列上的数据集进行分组并同时进行不同的聚合? Python

LINQ 按时间段聚合和分组