TIPS-Calculating Percentage In SQL Query

有一個資料表,內有四筆資料,數量分別是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 () 即可算全部的總和

歡迎推文分享:
Published 26 October 2007 04:14 PM 由 Jeffrey
Filed under: , ,
Views: 8,238



意見

# 金旺 said on 26 October, 2007 12:56 AM

好像沒有什麼難得倒你的啊...

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<October 2007>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication