2015-11-06 56 views
0

我試圖從我們的數據庫中獲得前10名捐款。每個蒸汽都可以多次捐贈,因此需要多次捐贈才能獲得總額。一個例子是表:獲得排名前5的總成績

steamid    amount  email     date 
76561197991519598 25   [email protected]  1445107360 
76561198129490626 10   [email protected]  1445106920 
76561197994977992 5   [email protected]  1445107724 
76561197991519598 25   [email protected]  1445107519 
76561197994977992 50   [email protected]  1445107047 

結果應該是:

76561197994977992 = 55 
76561197991519598 = 50 
76561198129490626 = 10 

(從最有序到最低)。

我測試過自己的東西,並得到奇怪的結果這裏是我的嘗試:

SELECT st.* 
FROM donations st 
WHERE st.amount = 
    (SELECT SUM(t.amount) 
    FROM donations t 
    WHERE t.steamid = st.steamid) 
GROUP BY st.steamid 
ORDER BY st.amount 

回答

1

試試這個:

select steamid, sum(amount) as total from donations 
group by steamid 
order by 2 desc 
limit 5 
+0

像往常一樣,我太過複雜了!謝謝。 – user1372896