我想对一个学生网站的注册人数进行滚动统计。
查询如下所示:
SELECT COUNT(type) as student_count, MONTH(created_at) as month, YEAR(created_at) as year
FROM users
WHERE type = 'student'
GROUP BY MONTH(created_at), YEAR(created_at)
ORDER BY year, month
这将产生以下输出:
我试图在查询中实现的是不断地将 student_counts
从上一行。
所以:
2014年12月应该有15名学生
2015年1月应该有16名学生
2015年2月应该有34名学生
等等。。。
这在sql中是可能的还是在输出代码本身中的数据时这样做更好?
4条答案
按热度按时间bjg7j2ky1#
tsm1rwdh2#
尝试与汇总一起使用
anauzrmj3#
在mysql中处理这个问题的一种方法是使用相关的子查询来查找正在运行的总数。
演示
这里没什么要解释的,除了这个
SELECT DISTINCT
将表中每个唯一的年-月值作为单个记录提供给我们。然后,我们对该时间点或更早时间点的所有行进行计数,以找到运行总数。ha5z0ras4#
试试这个: