我正在尝试创建一个相对复杂的 MySQL 查询来生成堆积条形图 - 按月、按部门的请求计数。
我一直尝试使用的方法是通过子查询——但这似乎是一个死胡同,因为按月分组不适用于子查询。它对返回的每一行重复相同的总计数,例如
MONTH HR ACCT CUST SVC
October 5 1 5
November 5 1 5
December 5 1 5
这是我正在使用的查询:
SELECT
MONTH(request.submissiondate), YEAR(request.submissiondate),
(SELECT count(*) from request where request.DEPARTMENTID='1') as 'Human Resources',
(SELECT count(*) from request where request.DEPARTMENTID='2') as 'Accounting',
(SELECT count(*) from request where request.DEPARTMENTID='3') as 'Customer Service'
FROM request
WHERE YEAR(request.submissiondate) = 2011
group by MONTH(request.submissiondate), YEAR(request.submissiondate)
希望有一种我所缺少的相对简单的替代方法。
预先感谢您的帮助!
最佳答案
也许这样的东西会起作用?
SELECT
MONTH(request.submissiondate), YEAR(request.submissiondate), request.DEPARTMENTID, COUNT(*) as 'total'
FROM request
WHERE YEAR(request.submissiondate) = 2011
group by MONTH(request.submissiondate), YEAR(request.submissiondate), request.DEPARTMENTID
ORDER BY request.submissiondate
我不知道是否可以准确地获得上面列出的输出,但是您应该能够循环返回的行并使用您使用的任何服务器端语言重新排列输出。
关于mysql - 使用子查询(MySQL)时分组的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8031582/