【问题标题】:sql query constructing formulasql查询构造公式
【发布时间】:2010-09-04 01:12:29
【问题描述】:

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

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

Target   20

v1       10

v2       20

v3       10

Total    30

percent   ?

我想用单列值计算百分比来得到公式

--> 目标/总数 * 100.

例如:Total = SUM (Values) 这样......

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

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

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

怎么样?查询它?

【问题讨论】:

  • v1+v2+v3 (40) 是否等于 Total (30)? Total 是单独的行吗?您希望将所有内容放在一列中吗?

标签: sql aggregate-functions


【解决方案1】:

您希望在查询输出中显示额外的记录?看起来您正试图让它看起来和工作起来像 Excel 电子表格,但无论如何,这就是您要做的事情:

SELECT Name, Values FROM table 
UNION (Select function(inputs) AS Name, function(inputs) AS Values FROM table)

【讨论】:

    【解决方案2】:

    如果你想在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多