[英]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.