簡體   English   中英

Select MySQL 中 MAX 的計數

[英]Select COUNT of MAX in MySQL

我有兩個表: Score tableTeams table 它們都包含來自其他表的一些外鍵,但在我的例子中,我不需要來自其他表的列。

我想在SELECT query中獲取team id and points COUNT of MAX score of a team per round

Score table

ID round_id team_id 分數
1085e36b-7621-4634-93e2-c5404108ed23 424d4186-4432-4b8d-ab9d-00ee71945cf6 752f9ebc-7016-42f2-be90-768711fc3d46 18
47ff3765-6357-47bc-abb8-6b5adf436546 424d4186-4432-4b8d-ab9d-00ee71945cf6 90dd8de4-8ddc-46cd-8b67-d93edbede174 7
b26b1a5b-8606-4c08-b838-30fdbcf98697 3fbb49a0-7a8a-4db5-b854-84a9ce7ac2b3 90dd8de4-8ddc-46cd-8b67-d93edbede174 20
c1add78a-94a3-48cf-b89d-4e4500ab738d 3fbb49a0-7a8a-4db5-b854-84a9ce7ac2b3 752f9ebc-7016-42f2-be90-768711fc3d46 21

Teams table

ID 名稱 比賽編號
2b56a499-9fc4-40c2-a7c4-43762c2b27e7 2@1.com & 4@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c
752f9ebc-7016-42f2-be90-768711fc3d46 5@1.com & 3@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c
7c9aa32a-ff99-4169-9512-27bc0aac0093 7@1.com & 6@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c
90dd8de4-8ddc-46cd-8b67-d93edbede174 8@1.com & 1@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c

如您所見,一個team have a tournament_id foreign key from a Tournaments tableScore table have a round_id foreign key from a Rounds table但我在這一步中不需要這些細節。

正如您在Score table中看到的那樣, roundtwo records, one for each team that plays in that round我想知道任何一支球隊贏得一輪比賽的次數(這就是為什么我猜我需要MAX 的計數)。

我試過的SELECT query

SELECT team_id, count(max(score)) as points FROM Score
WHERE team_id IN (SELECT DISTINCT t.id 
    FROM Teams t
    WHERE t.tournament_id = '9aaa6f86-5555-49b8-99a6-900a90dc3c7c')
GROUP BY round_id

但是這個query拋出了錯誤代碼:1111。無效使用組 function

預期結果:

team_id 積分
752f9ebc-7016-42f2-be90-768711fc3d46 2個
90dd8de4-8ddc-46cd-8b67-d93edbede174 0

我應該如何達到預期的結果?

感謝您抽出時間,如果有什么不清楚或應該有更多細節,請告訴我!

如果我理解正確,您可以嘗試使用子查詢進行OUTER JOIN ,每個 round_id 獲得最高分

SELECT s.team_id,
       COUNT(m_Score)
FROM Score s 
LEFT JOIN 
(
    SELECT round_id,MAX(score) m_Score
    FROM Score 
    GROUP BY round_id
) t1 ON t1.m_Score = s.Score and t1.round_id = s.round_id
WHERE team_id IN (
    SELECT t.id 
    FROM Teams t
    WHERE t.tournament_id = '9aaa6f86-5555-49b8-99a6-900a90dc3c7c'
)
GROUP BY s.team_id

sqlfiddle

暫無
暫無

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

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