我的数据库中有一个表:
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
开头,但我不知道如何继续。你能帮帮我吗?谢谢。
答案 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}}