如何跟踪每月和每年的数据量?

时间:2017-11-01 11:59:06

标签: java mysql sql

我的程序让用户表明他是否是大四学生。我想生成一份报告,显示有多少用户是老年人,有多少用户不是每月和每年。

示例:

总用户数:20,000

2月登记的总年龄:1,000

本月注册的总年级人数:1,000:

...

2017年注册的总年龄:10,000

有没有其他替代方法可以实现这一点,而不必在接下来的几年中在我的数据库中创建一个表?

1 个答案:

答案 0 :(得分:1)

这里有几个不同的分组。

获取总计数是最简单的,因为您只是得到整个表格的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应该是DATETIMETIMESTAMP格式。