我有这样一种基于时间的数据表:
| entity_id | ttime | value |
-------------------------------------------
| 1 | 2014-11-01 00:00:04 | 553 |
| 1 | ... | 600 |
| 2 | ... | 234 |我想得到按周和entity_id分组的值的平均值。但我也希望这一周的第一天出现在结果中。更复杂的是,本周从周三开始。
我可以按年(ttime+间隔3天)、周(ttime+间隔3天)分组,但是否可以在结果中打印小组的第一天(星期三)?
谢谢
发布于 2014-11-13 16:02:16
也许是这样的:
SELECT
`entity_id`,
DATE_SUB(ttime, INTERVAL WEEKDAY(ttime)-2 DAY),
SUM(`value`)
FROM `table`
GROUP BY `entity_id`, YEARWEEK(ttime + INTERVAL 4 DAY)发布于 2014-11-14 09:04:52
我找到了这个解决方案:
SELECT
str_to_date(CONCAT(YEAR(ttime + INTERVAL -3 DAY),
WEEK(ttime + INTERVAL -3 DAY), 'Wednesday'), '%X%V %W') as WeekCommencing,
entity_id, AVG(value),
FROM `table`
GROUP BY WeekCommencing, entity_idhttps://stackoverflow.com/questions/26912003
复制相似问题