繁体   English   中英

使用聚合函数的问题

[英]Problems with using an aggregate function

我正在尝试采用单个值,并将它们除以一列中的值之和。

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

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

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

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

然后,如果我将column2包括在group by子句中,那么我的SUM(column1)只是根据column2的值重新填充了先前的值。...违背了我的SUM的目的。

救命?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM