mysql - 按类型返回每个月的用户数

标签 mysql sql select count

我不知道这怎么可能:

我在 (SQLfiddle)[ http://sqlfiddle.com/#!9/d7a8f/3] 中有一个数据库,我想从该数据库返回以下内容:

我想根据类型返回每个月创建的用户数。 我的数据库中有四个角色(管理员、无角色、 super 用户、用户)。

为了详细说明我的查询,我希望信息如下所示: 例如 SQL Picture

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/

相关文章:

sql - 谁能在 SQLite 中识别这种日期/时间格式?

sql - 查找查询返回的列数

c# - 如何解析和替换大型 csv 文件中不正确的跨世纪日期值

php - MySQL 简化了一个 Select & Update 命令

mysql - Perl:使用 LibXML 将 XML 转换为 MySQL

mysql - Hibernate 无法列出 Mysql SHOW SESSION STATUS

php - 如何将MySQL数据库中的特殊字符显示到html中?

mysql - 按位 MySQL NAND 查询

MySQL:使用 LEFT JOIN 选择

php - OR 和 AND 组合失败 MySQL