我不知道这怎么可能:
我在 (SQLfiddle)[ http://sqlfiddle.com/#!9/d7a8f/3] 中有一个数据库,我想从该数据库返回以下内容:
我想根据类型返回每个月创建的用户数。 我的数据库中有四个角色(管理员、无角色、 super 用户、用户)。
2016 年 1 月,4、3、5、8、20。 2015 年 1 月是一个月,管理员 4 个,无角色 3 个, super 用户 5 个,用户 8 个,总计 20 个。 用户类型必须按升序排序。
我尝试了以下方法:
Select DATE_Format(TIMESTAMP,' %b %Y') AS MONTH,Usertype,count(UserID)
from user
group by Month,Usertype
最佳答案
您可以在 case
表达式上使用一堆 count
函数,将数据分解为各自的角色:
SELECT DATE_FORMAT(TIMESTAMP, '%b %Y') AS `month`,
COUNT(CASE UserType WHEN 'Administrator' THEN 1 END) AS Administrator,
COUNT(CASE UserType WHEN 'No Role' THEN 1 END) AS NoRole,
COUNT(CASE UserType WHEN 'Super User' THEN 1 END) AS SuperUser,
COUNT(CASE UserType WHEN 'User' THEN 1 END) AS `User`
FROM `user`
GROUP BY DATE_FORMAT(TIMESTAMP, '%b %Y')
关于mysql - 按类型返回每个月的用户数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824922/