簡體   English   中英

SELECT COUNT() 在 SELECT MAX() SQL 中

[英]SELECT COUNT() INSIDE A SELECT MAX() SQL

我在數據庫中有一個名為player_mast表(數據只是一個例子),我想找到為 2016 年歐洲杯提供最多球員的俱樂部。

玩家 ID country_id 球衣號碼 參賽者姓名 posi_to_play dt_of_bir 年齡 play_club
1231 1231 10 冒險 前鋒 2/3/1991 33 切爾西

為什么這個查詢不起作用? 在我看來是正確的:

SELECT playing_club, MAX(NumberOfPlayerForTeam)
FROM (
  SELECT playing_club, COUNT(player_id) AS NumberOfPlayerForTeam
  FROM player_mast
  GROUP BY(playing_club))
GROUP BY(playing_club);

試試這個

SELECT playing_club, NumberOfPlayerForTeam<br>
FROM (<br>
  SELECT playing_club, COUNT(player_id) AS NumberOfPlayerForTeam<br>
  FROM player_mast<br>
  GROUP BY(playing_club))<br>
ORDER BY NumberOfPlayerForTeam DESC LIMIT 1;

如果您想要表格中行數最多的俱樂部,您可以使用rank()

SELECT pm.*
FROM (SELECT playing_club, COUNT(*) AS NumberOfPlayerForTeam,
             RANK() OVER (ORDER BY COUNT(*) DESC) as seqnum
      FROM player_mast
      GROUP BY playing_club
     ) pm
WHERE seqnum = 1;

筆記:

  • COUNT(<column name>)計算COUNT(<column name>)中非NULL值的數量。 不需要做這個額外的檢查; COUNT(*)做你想要的。
  • GROUP BY鍵周圍不需要括號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM