TIPS-Calculating Percentage In SQL Query
1 | 7,780 |
有一個資料表,內有四筆資料,數量分別是2, 3, 5, 10,我希望用SQL查出如下包含百分比10%,15%, 25%, 50%的結果:
ID AMT PERC
----- ------ -------
1 2 10%
2 3 15%
3 5 25%
4 10 50%
同事出了這個考題給我,算是讓我學會SUM() OVER (PARTITION BY ...)的用法。以上問題的解法如下:
排版顯示純文字
--FOR ORACLE
SELECT ID, AMT,
AMT * 100 / SUM(AMT) OVER (PARTITION BY NULL) || '%'
AS PERC
FROM JEFF
--FOR SQL Server
SELECT ID, AMT,
CONVERT(VARCHAR(3),
AMT * 100 / SUM(AMT) OVER (PARTITION BY NULL)
) + '%'
AS PERC
FROM JEFF
UPDATE @ 2007-10-27
SUM(AMT) OVER (PARTITION BY NULL) 寫成 SUM(AMT) OVER () 即可算全部的總和
Comments
# by 金旺
好像沒有什麼難得倒你的啊...