繁体   English   中英

通过SQL对星期几和小时/分钟进行双重分组

[英]Double group by SQL for day of week and hour/minute

每分钟我在数据库中都有一个值。 每个记录都有一个时间戳和一个值。 "30695","2015-09-06 18:10:09","693"我想获取一周中每一天每一分钟的平均值,但是我不确定如何为此构建查询。

我的想法是,我首先需要按DATEPART(weekday,[time])将所有记录分组,这会将我的所有数据放入星期日,星期一,星期二等。接下来,我将按分钟四舍五入。 (因此,2015年11月30日06:41:28会得到与2015年11月23日06:41分组:56(首尾两天星期一))。 然后,取每分钟值的平均值--7 * 24 * 60 = 10,080个总值。

有在MySQL没有DATEPART()函数,但是你可以使用DAYOFWEEK()获得一周的一天分钟()来获取分钟部分:

select dayofweek(timestamp) as day, minute(timestamp) as minute, avg(value_field) as average
from table
group by dayofweek(timestamp), minute(timestamp);

根据Shadow的回答改编了,这不太正确。 这是我的查询(MySQL 5.5) SELECT weekday(timestamp) as day_of_week, avg(avg) as average, DATE_FORMAT(timestamp,'%H:%i') as hour_time FROM audio GOUP BY hour_time, day_of_week ORDER BY `day_of_week` ASC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM