我有一个包含两列的表格:
Name Values
----------------
Target 20
v1 10
v2 20
v3 10
Total 30
percent ?
我想用单列值计算百分比以获得公式
- >目标/总计* 100.
即ex:Total = SUM(值)就这样......
通过在sql查询中的列中使用两行,如何通过在其中实现公式,在具有diff行值的单列中进行计算。
我不想计算总数。我想计算百分比:
公式:目标/总计* 100。这给了我百分之一行的价值?
如何?查询它?
答案 0 :(得分:1)
如果您想在SQL中使用它...
;WITH
cTarget AS (SELECT Values AS Target FROM MyTable WHERE name = 'Target'),
cTotals AS (SELECT SUM(Values) AS Total FROM MyTable WHERE name <> 'Target')
SELECT * FROM MyTable
UNION ALL
SELECT 'Total', Total FROM cTotals
UNION ALL
SELECT
'Percentage', 1.0 * Target / Total * 100
FROM
cTarget
CROSS JOIN
cTotals
答案 1 :(得分:1)
您希望在查询输出中显示其他记录吗?这似乎是你试图让它看起来和像Excel电子表格一样工作,但无论如何,这就是你要做的事情:
SELECT Name, Values FROM table
UNION (Select function(inputs) AS Name, function(inputs) AS Values FROM table)