sql查询构造公式

时间:2010-09-03 16:51:28

标签: sql aggregate-functions

我有一个包含两列的表格:

Name    Values
----------------

Target   20

v1       10

v2       20

v3       10

Total    30

percent   ?

我想用单列值计算百分比以获得公式

- >目标/总计* 100.

即ex:Total = SUM(值)就这样......

通过在sql查询中的列中使用两行,如何通过在其中实现公式,在具有diff行值的单列中进行计算。

我不想计算总数。我想计算百分比:

公式:目标/总计* 100。这给了我百分之一行的价值?

如何?查询它?

2 个答案:

答案 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)