在我的表格中我有三列draft
,live
和completed
草稿的值为18
,实时为33
,已完成的11
如何计算SQL中每个的百分比
我试过这样的事情,但不认为这是正确的计算
以下是我尝试过的...但我想当我尝试计算三个百分比的总和时,他们不会覆盖完整的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 :(得分:1)
所以这基本上是一个数学问题而不是编程问题。解决这个问题的一种方法是将所有东西乘以100和总和之间的比例(在你的情况下是62):
(18 *(100/62))+(33 *(100/62))+(11 *(100/62))= 62 *(100/62)(' s显然等于100)
答案 1 :(得分: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