[英]MySQL select max count of a column value
我有一個名為Euro_Cup的表。
[在此處輸入圖片描述] [1]
Group Country Rank Jersey Position Age Selections Club Player
A Brazil 3 18 Midfielder 29 24 Internazionale Hernanes
A Cameroon 56 18 Midfielder 28 38 Antalyaspor Eyong Enoh
A Croatia 18 18 Forward 34 92 VfL Wolfsburg Ivica Olic
A Mexico 20 18 Defender 27 104 Bayer Leverkusen Andres Guardado
B Australia 62 18 Goalie 32 8 Adelaide United Eugene Galekovic
B Chile 14 18 Defender 28 65 Nottingham Forest Gonzalo Jara
B Spain 1 18 Defender 25 26 Barcelona Jordi Alba
B Netherlands 15 18 Midfielder 24 6 Norwich City Leroy Fer
我必須編寫一個SQL查詢以按球員的球衣號碼對球員進行分組,然后針對每個球衣號碼組,返回該球衣號碼的最常見位置。
例如,球衣號碼18的3名中場球員,8名后衛和2個守門員,則結果應為球衣號碼18,后衛(球衣號碼為18的bcos max球員)
我努力了
select jersey,position,count(position) as cnt
from euro_cup2
group by jersey,position
having count(position) in
(select max(cnt) from (select jersey,position,count(position) as cnt
from euro_cup2
group by jersey,position)a)
但這行不通。 任何幫助將不勝感激
試試這個,應該可以
SELECT Jersey,
Group_concat(Position separator ','),
Group_concat(CountOfPosition separator ',')
FROM (SELECT euro_cup.Jersey,
euro_cup.Position,
Count(euro_cup.Position) AS CountOfPosition
FROM euro_cup
GROUP BY euro_cup.jersey,
euro_cup.Position) a
WHERE CountOfPosition = (SELECT Max(CountOfPosition)
FROM (SELECT euro_cup.jersey,
euro_cup.Position,
Count(euro_cup.Position) AS CountOfPosition
FROM euro_cup
GROUP BY euro_cup.jersey,
euro_cup.Position) b
WHERE a.jersey = b.jersey)
GROUP BY Jersey
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.