【发布时间】:2020-02-25 07:29:09
【问题描述】:
我想在我的网络应用程序上显示每个月的注册用户。为此,我想从用户表中查询计数并将其发送到前端。例如,我从以下查询中获取一个月内的用户数。
select count(u_id) AS 'Count', MONTH(reg_date) AS Month
from user
WHERE(reg_date) BETWEEN '2019-10-01' AND '2019-10-31'
这显示 10 月份注册的用户数。我从这个查询中得到的结果表是这样的。
------------------------
Count Month
------------------------
2 10
------------------------
我想要得到的结果如下。
------------------------
Count Month
------------------------
2 1
------------------------
10 2
------------------------
5 3
------------------------
我已将用户 ID 和注册日期存储在用户表中。注册日期是 SQL 日期类型,用户 ID 是整数。我可以使用下面提到的查询获取给定月份的用户数量,并将其存储在后端的变量中,然后再次调用数据库以获取下个月,依此类推(使用循环)。然后创建一个列表并发送到前端。但是为此我必须多次调用数据库。为了获得 12 个月的用户,我必须查询 12 次。 我想要的是从一个查询中获取每个月的用户数量。如果我将日期存储为三列,如日期、月份、年份,我可以得到这个结果。但我不想改变当前的表结构。有没有办法在不改变当前表结构的情况下完成这项任务?
【问题讨论】:
标签: mysql sql spring-boot