如何在一个表中进行两个不同的计数? 两个不同的计数函数对不同的列进行计数。
简化表:
id,creatorId,resolverId
'1','1','2'
'2','1','2'
'3','2','2'
'4','2','1'
我想要做的是将creatorId,COUNT(creatorId),resolverId,COUNT(resolverId)放入一张表中。喜欢:
creatorId,COUNT(creatorId),resolverId,COUNT(resolverId)
'1','2','1','1'
'2','2','2','3'
我只通过了使用UNION将它们放入2列的测试,并且我尝试了JOIN,但它对MySQL来说是非法的。
SELECT creatorId, COUNT(creatorId)
FROM issue AS a
GROUP BY creatorId
join(
SELECT resolverId, COUNT(resolverId)
FROM issue AS b
GROUP BY resolverId)
WHERE a.creatorId = b.resolverId;
错误信息是:
错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 4 行 0.00034 秒的“join( SELECT resolverId, COUNT(resolverId) FROM issues AS b GROUP BY resolverId)”附近使用的正确语法
谁能告诉我该如何处理?或者给我一个例子? 谢谢!
最佳答案
select a.creatorId,COUNT(a.creatorId), t.resolverId, count_resolved_id
from issue a
inner join (
SELECT b.resolverId, COUNT(b.resolverId) count_resolved_id
FROM issue AS b
GROUP BY resolverId
) t on t.resolverId = a.creatorId
group by a.creatorId;
关于mysql - 如何在一个sql中执行两个不同的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44470880/