我有一個同事正在使用「金額」列的表。 他們想要在同一個查詢中獲得前5個金額和金額總和。簡單的SQL選擇總計和同一列的值
我知道你可以這樣做:
SELECT TOP 5 amount FROM table
UNION SELECT SUM(amount) FROM table
ORDER BY amount DESC
但是,這產生的結果是這樣的:
1000 (sum)
100
70
50
30
20
當他們真正需要的是這樣的:
100 | 1000
70 | 1000
50 | 1000
30 | 1000
20 | 1000
我直觀的嘗試要實現這一點往往會遇到分組問題,當您選擇不同的列時,這不是一個問題,但是當您想要使用基於您所選列的聚合函數時。
謝謝你的工作。我沒有想到使用連接表來完成總和,我仍然嘗試SUM(b.amount)而不是b.sum。 – 2009-06-05 06:02:01