我有一個PlayerID和TypeID棒球比賽的數據庫(類型的遊戲:雙,罷工等)。數據看起來像這樣:選擇ID有最大數量的另一個ID
+----------+--------+
| playerid | typeid |
+----------+--------+
| 2 | 4 |
| 2 | 4 |
| 2 | 7 |
| 3 | 7 |
| 3 | 7 |
| 3 | 7 |
| 3 | 26 |
| 3 | 7 |
我試圖找到哪些玩家有最大的每種遊戲。例如。吉姆(PlayerID 3)有最擊奏(TYPEID 7)和Bob(PlayerID 2)有最本壘打(TYPEID 4)這將導致如下表所示:
+----------+--------+----------------+
| playerid | typeid | max(playcount) |
+----------+--------+----------------+
| 2 | 4 | 12 |
| 3 | 7 | 9 |
| 3 | 26 | 1 |
我最好的嘗試迄今運行:
SELECT playerid,typeid,MAX(playcount) FROM
(
SELECT playerid,typeid,COUNT(*) playcount FROM plays GROUP BY playerid,typeid
) AS t GROUP BY typeid;
它返回每種類型的適當的最大值,但相關的PlayerIDs都錯了,我想不通爲什麼。我確信我錯過了一些簡單的東西(或者使這個過於複雜),但無法弄清楚。有任何想法嗎?
除了「@lay」而不是「plays」之外,它是完美的。我一直看到這種事情,並沒有意識到它實際上做了我想做的事情。謝謝! – vityav