我的程序让用户表明他是否是高年级学生。我想生成一份报告,显示每月和每年有多少用户是老年人,有多少用户不是老年人。
示例:
用户总数:20,000
二月份注册的老年人总数:1,000
当月注册的老年人总数:1,000
...
2017年注册的老年人总数:10,000
是否有其他替代方法可以实现此目的,而无需在我的数据库中为接下来的每年创建一个表?
最佳答案
这里有几个不同的分组。
获取总计数是最简单的,因为您只需获取整个表的 COUNT
:
SELECT
COUNT(`name`) AS `TotalRegistered`
FROM
`User`;
按月(和年)进行分组将是:
SELECT
YEAR(`dateregistered`) AS `Year`,
MONTH(`dateregistered`) AS `Month`,
COUNT(`name`) AS `NumberRegistered`
FROM
`User`
GROUP BY -- Since you want the values counted by year then month
YEAR(`dateregistered`) AS `Year`,
MONTH(`dateregistered`) AS `Month`
ORDER BY -- To order the actual results
YEAR(`dateregistered`) AS `Year`,
MONTH(`dateregistered`) AS `Month`;
顺便说一句,您应该有一个似乎未包含在此处的主键,并且您的 dateregistered
应该是 DATETIME
或 TIMESTAMP
格式。
关于java - 如何跟踪每月和每年的数据数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47054292/