给定一个显示组织成员获得的奖项的表格,我试图列出在给定日期后获得三个或更多奖项的所有成员,并列出这些成员获得的所有奖项。我有一个可以正确列出成员的查询,但它只显示每个成员一行,我正在尝试查看他们的所有奖项。
对于任何成员(member)获得的每个奖励(“奖励”),表格中都有一行,包括奖励类型和获得日期(“奖励日期”)。
这是我所拥有的:
SELECT Membername, Award, Awarddate,COUNT(Membername)
FROM awards
WHERE Awarddate > '2011-06-30'
GROUP BY Membername HAVING COUNT(Membername) > 2
建议?
最佳答案
你可以使用 GROUP_CONCAT()
聚合函数:
SELECT Membername
, COUNT(*) AS NumberOfAwards
, GROUP_CONCAT(Award ORDER BY Awarddate) AS Awards
, GROUP_CONCAT(Awarddate ORDER BY Awarddate) AS AwardDates
FROM awards
WHERE Awarddate > '2011-06-30'
GROUP BY Membername
HAVING COUNT(*) > 2
关于mysql - 按计数选择行组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957799/