2015-05-14 36 views
-2

說在我的表我有三列draftlivecompleted如何找到三個不同值的百分比?

18的草案,33現場,11已完成

如何計算每個百分比在SQL

我嘗試這樣的事情,但不要認爲這是正確計算

下面是我試過..但我想當我嘗試計算PERC的總和三entage他們不會涵蓋完整的100

UPDATE @finalTable 
SET Draft_Percentage = (CASE 
when Draft_Total > 0 then ((Draft_Total * 100)/(select sum(t1.Draft_Total) + sum(t1.Live_Total) + sum(t1.Completed_Total) from @finalTable as t1)) 
else 0 
end) 

UPDATE @finalTable 
SET Live_Percentage = (case 
WHEN Live_Total > 0 THEN ((Live_Total * 100)/(select sum(t1.Draft_Total) + sum(t1.Live_Total) + sum(t1.Completed_Total) from @finalTable as t1)) 
else 0 
end) 

UPDATE @finalTable 
SET Completed_Percentage = (CASE 
WHEN Completed_Total > 0 THEN ((Completed_Total * 100)/(select sum(t1.Draft_Total) + sum(t1.Live_Total) + sum(t1.Completed_Total) from @finalTable as t1)) 
else 0 
end) 

請建議

+0

你的問題非常不清楚。你想要計算什麼?請提供@finalTable的定義,併爲相關的RDBMS添加標籤。 –

+0

c現在我的總目標是18 + 33 + 11 = 62。但現在我想要找出他們從100分享的百分比。我使用谷歌堆積條形圖,直到100我想要顯示這些信息 – Torakami

回答

1

所以這基本上是一個數學問題,而不是一個規劃問題。解決這個問題的一種方法是用100和總和(在你的情況下爲62)之間的比率乘以所有值:
(18 *(100/62))+(33 *(100/62))+(11 *(62分之100))= 62 *(100/62)(這顯然等於100)

0

我的理解是: -

SELECT (18*100)/(18+33+11) AS 'Draft' 
    , (33*100)/(18+33+11) AS 'Live' 
    , (11*100)/(18+33+11) AS 'Completed' 

結果

Draft  Live Completed 
29   53  17