我想从十年前到今天计算一个月内所有新生的数量,并将这些信息放入一张表中,逐月分开。
我有一个mysql用户表,其中包含用户以时间戳格式注册的日期。
所以,我有这样的事情: (格式为dd-mm-yyyy)
Unix --------------- readable date
1528743811 --------- 11-6-2018
1528740914 --------- 11-6-2018
1528740347 --------- 11-6-2018
1528733661 --------- 11-6-2018
1528676301 --------- 10-5-2018
1528657978 --------- 10-5-2018
1528508065 --------- 8-5-2018
1528492266 --------- 8-4-2018
etc..
我怎么做计算? (即使在seudocode中,我也会想到从哪里开始,或者如何实际制定问题)。
我期待这样的事情:
4-2018 --------- 1
5-2018 --------- 3
6-2018 --------- 4
如果您认为 syntaxis可以改进,请告诉我,谢谢! (英语不是我的主要语言)。
此外,如果您想 downvote ,或投票问题要关闭或 删除,请给我留言,所以我可以改进我的 的问题。感谢。
答案 0 :(得分:2)
您可以使用FROM_UNIXTIME()
和GROUP BY
SELECT
FROM_UNIXTIME([Unix], '%M %Y') AS Label,
COUNT(*) AS Count
FROM [table]
GROUP BY MONTH(FROM_UNIXTIME([Unix])), YEAR(FROM_UNIXTIME([Unix]))
WHERE ADDDATE(FROM_UNIXTIME([Unix]), INTERVAL 10 YEARS) >= CURDATE()
如果那个FROM_UNIXTIME
太多,你可以查询它。