0
我有一張桌子,我每天記錄用戶的多個分數。我試圖創建一個查詢,我得到每週不同的前5名每週贏家...來自每週的前5條記錄
難道我需要在最大分數和日期星期內對分組結果進行分組查詢嗎?或者我需要做兩個子查詢一個日期另一個最大分數然後使用外部查詢來分組?
好表的結構將是:
NAME,
SCORE,
DATE
我想出了這個
SELECT *
FROM `highscores`
WHERE id IN ((SELECT id
FROM highscores
WHERE WEEK(date) IN (SELECT DISTINCT WEEK(date)
FROM highscores)
ORDER BY score DESC))
GROUP BY email
ORDER BY date, score DESC
但顯然我不能在子查詢
在postgresql中,你可以使用窗口函數,但在MySQL中你沒有它們,你可以使用不那麼強大的GROUP_CONCAT()。也許檢查http://code.openark.org/blog/mysql/sql-selecting-top-n-records-per-group-another-solution。 - 另外,你可以發表你的表的一些示例行嗎? –
您可以發佈帶有樣本數據和預期輸出的表格嗎? – cyadvert