返回按周MySQL分组的行数

use*_*487 7 php mysql sql database

我试图从MySQL表中获取行数,其中数据按WEEK分组.

到目前为止,我的查询是:

 "SELECT count(*) as tweets, twitTimeExtracted as date 
  FROM scene.twitData 
  group by week(twitTimeExtracted)"
Run Code Online (Sandbox Code Playgroud)

此查询返回以下数据:

在此输入图像描述

正如你所看到的那样,周数不正确,我期待每周的数据从1月7日(7,14,21,28,4,11等等)开始,一直持续到本周.

我还尝试了orignal查询的修改版本:

SELECT count(*) as tweets, twitTimeExtracted as date 
FROM scene.twitData 
WHERE date(twitTimeExtracted) 
   BETWEEN '2013-01-07' and '2013-03-11' 
group by week(twitTimeExtracted)
Run Code Online (Sandbox Code Playgroud)

这将返回与第一个查询类似的结果.

也许与DATETIME中存储的一些数据存在不一致:twitTimeExtracted列在几行数据上?我真的不知道我对MySQL不是很有经验.

真的很感激任何帮助.

谢谢

Ola*_*che 16

这会将datetime值转换为适当的星期一

select count(*) as tweets,
       str_to_date(concat(yearweek(twitTimeExtracted), ' monday'), '%X%V %W') as `date`
from twitData 
group by yearweek(twitTimeExtracted)
Run Code Online (Sandbox Code Playgroud)

yearweek返回周和年.与字符串一起monday,str_to_date为您提供星期一的datetime价值.

如果您的周从星期一开始,请yearweek(twitTimeExtracted, 1)改用.