如何在mysql中计算过去7天中每天的条目?

时间:2015-10-29 09:18:24

标签: mysql sql database

我的数据库中有一个表:

id  |  start_date  |  text
--------------------------
1   |  1446109949  |   hi
2   |  1446109436  |   gsdgsd
3   |  1446103439  |   hfdhf
4   |  1446325345  |   bvbcv
5   |  1446105754  |   fdsfsd
6   |  1446266344  |   fdsfds
7   |  1446643646  |   hfdhfd
etc.

基本上它包含很多记录,每个记录都包含自己的时间戳。 我尝试创建一个查询,返回过去7天中每个记录的数量。因此,当用户今天运行它时,它将向他显示昨天分配了3个文本,两天前分配了5个,依此类推,直到7天前。

由于我对SQL中的分组知之甚少,我认为此查询将以SELECT Count(id) from USER_TEXT开头,但我不知道如何继续。你能帮帮我吗?谢谢。

1 个答案:

答案 0 :(得分:3)

如果你想要以下结果:

days_ago   |  num_texts
-------------------------
0          | 6
1          | 3
2          | 1
3          | 8
etc.

然后查看MySQL group by date and convert from unix timestamp

处的查询

但是,如果您希望结果如下:

SELECT * 
FROM (SELECT DATEDIFF(now(), FROM_UNIXTIME(start_date)) AS days_ago, COUNT(id) AS num_texts 
      FROM USER_TEXT 
      GROUP BY DATE(FROM_UNIXTIME(start_date))) AS temp 
WHERE days_ago <= 7

然后您可以使用以下查询:

{{1}}