我在查询中应用了Group_Concat,结果显示就很好。以下是我的查询,
SELECT tblUserGroup.GroupID, GROUP_CONCAT(tblUserGroup.UserId) AS UserIds FROM
tblGroup
INNER JOIN tblUserGroup ON tblGroup.GroupID = tblUserGroup.GroupID
GROUP BY tblUserGroup.GroupID
ORDER BY (UserIds)
现在输出是这样的。
GroupID UserIds
1 1,2
2 1,4
3 1,2,3
4 1,2
5 1,2
6 1,2,3
我在GROUP_CONCAT和COUNT上阅读了不同的问题,但是我不想在UserId上应用计数,而是想在GROUP_CONCAT上应用计数,例如“ 1,2”。
我想要的是修改此查询,使其只显示发生一次以上的那些记录。例如只有1,2和1,2,3
最佳答案
您是否尝试过使用子查询?就像这样:
SELECT Sub.UserIds, COUNT(*) as Qt
FROM (
SELECT tblUserGroup.GroupID, GROUP_CONCAT(CONVERT(tblUserGroup.UserId, CHAR(20)) SEPARATOR ',') AS UserIds, count(*) FROM
tblGroup
INNER JOIN tblUserGroup ON tblGroup.GroupID = tblUserGroup.GroupID
GROUP BY tblUserGroup.GroupID HAVING COUNT(*) > 0
) AS Sub
GROUP BY Sub.UserIds
关于c# - 依靠Group_Concat的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36463092/