2013-07-16 139 views
-3

我嘗試按組計算總和並計算每個組佔多少%。這是很容易使用GROUP BYSUMIF但後來我被困在SUM (ALL) - 我想我可以嘗試做SUM(CASE IF GROUP='A' THEN END) + SUM(CASE IF GROUP='B'...但隨後WHATIF有更多GROUP :(在SQL中執行百分比計算

SELECT GROUP, SUM(SALES), SUM(SALES)/TOTAL FROM DATABASE.SALETABLE

enter image description here

回答

3

您可以使用SUM ... OVER()以獲得總銷售額。

SELECT [Group], 
     SUM(SALES) AS [Sales], 
     100.0 * SUM(SALES)/SUM(SUM(SALES)) OVER() AS [%] 
FROM YourTable 
GROUP BY [Group] 

SQL Fiddle

+0

我想通了 - 使用'SUM(SALES)/(SELECT SUM(SALES)' – user2103670

+0

感謝,它不允許我馬上就是爲什麼接受的解決方案 – user2103670