簡體   English   中英

MySQL拉一個計數,並按該計數分組

[英]Mysql pull a count, and group by that count

很難確切說明我需要什么。 我想做的是計算本月的前5名獲獎者。 表格的結構方式(可以更改)是它記錄了每場比賽,球員的ID,獲勝者和日期。

該表的結構如下:id,p1id,p2id,dateAdded,狀態,獲勝者。

這是我的拉力:

 SELECT COUNT(winner) AS totalCount FROM gameEnders 
 WHERE 
 status=0 AND 
 (YEAR(dateAdded) = YEAR(CURDATE()) AND MONTH(dateAdded) = MONTH(CURDATE())) 
 GROUP BY winner
 ORDER BY totalCount DESC LIMIT 5

我知道這樣做的時候是行不通的,但這是我的最佳猜測。 我要顯示的是3,然后是1(稍后將添加帶有聯接的播放器名稱)。 有3個條目的獲獎者ID:2,和1個條目的獲獎者ID:1。 顯示的是2,它是編號最高的獲勝者的ID。

試圖盡可能清楚地說明我要做什么。 如果有可能,或者有人需要更多信息,請告訴我。

只要將winner添加到選擇語句中,您就應該在本月得到一個降序的贏家列表。

Select winner, 
       Count(*) AS totalCount 
From   gameEnders 
Where  status=0 
And    Year(dateAdded) = Year(CurDate()) 
And    Month(dateAdded) = Month(CurDate())
Group By winner
Order By Count(*) DESC 
Limit 5

嘗試這個:

SELECT winner
from
(
SELECT 
    winner, 
    COUNT(*) AS totalCount 
FROM gameEnders 
WHERE status=0 AND (YEAR(dateAdded) = YEAR(CURDATE()) AND MONTH(dateAdded) = MONTH(CURDATE())) 
GROUP BY winner
) ranked_winners
ORDER BY totalCount DESC
LIMIT 5;

暫無
暫無

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

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