使用聚合函数的问题

时间:2016-10-17 22:16:09

标签: mysql sql sql-server

我正在尝试获取单个值,并将它们除以列中的总和。

即。

SELECT (column1 / SUM(column1))
FROM Table a

这很好用,但是当我包含另一条必要的信息时......

SELECT column2
      ,(column1 / SUM(column1)) 
FROM Table a

然后它返回Column1在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

然后,如果我在group by子句中包含column2,我的SUM(column1)只是根据column2值重新填充先前的值....失去了我的SUM的目的。

帮助?

2 个答案:

答案 0 :(得分:0)

使用完整显式子查询来获取column1的总和:

SELECT column2,
       column1 / (SELECT SUM(column1) FROM Tablea)
FROM Tablea

答案 1 :(得分:0)

您可以使用和窗口函数 - Sum(column1)over() - 给出总和

SELECT column2, column1/(SUM(column1) OVER()) FROM YourTable