首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -每周做一次报告,其中包括开始的一天(扭曲:周三开始的一周)

问MySQL -每周做一次报告,其中包括开始的一天(扭曲:周三开始的一周)
EN

Stack Overflow用户
提问于 2014-11-13 15:06:37
回答 2查看 47关注 0票数 0

我有这样一种基于时间的数据表:

代码语言:javascript
复制
| entity_id | ttime               | value |
-------------------------------------------
|         1 | 2014-11-01 00:00:04 |   553 |
|         1 |                 ... |   600 |
|         2 |                 ... |   234 |

我想得到按周和entity_id分组的值的平均值。但我也希望这一周的第一天出现在结果中。更复杂的是,本周从周三开始。

我可以按年(ttime+间隔3天)、周(ttime+间隔3天)分组,但是否可以在结果中打印小组的第一天(星期三)?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-13 16:02:16

也许是这样的:

代码语言:javascript
复制
SELECT 
 `entity_id`, 
  DATE_SUB(ttime, INTERVAL WEEKDAY(ttime)-2 DAY),
  SUM(`value`)  
FROM `table` 
GROUP BY `entity_id`, YEARWEEK(ttime + INTERVAL 4 DAY)

SqlFiddle

票数 1
EN

Stack Overflow用户

发布于 2014-11-14 09:04:52

我找到了这个解决方案:

代码语言:javascript
复制
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_id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26912003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档