Sum(Column1)和在SQL中的Column2中显示

时间:2018-10-10 10:15:41

标签: mysql sql

需要查询以下输出。

{{1}}

我需要一个SELECT查询来求和(column1)并在column2中显示结果

2 个答案:

答案 0 :(得分:2)

您可以使用窗口功能:

select t.*, sum(col1) over ()  as col2
from table t;

但是,如果您使用的是旧版本,则MySQL不具有窗口功能,因此可以使用subquery来代替:

select t.*, (select sum(t1.col1) from table t1) as col2
from table t;

答案 1 :(得分:0)

可以使用Window Functions在MySQL版本> = 8.0中轻松解决。

在较旧的MySQL版本中,您可以在Sum中单独获得整体Derived Table。然后,对主表执行Cross Join,并相应地对Select字段进行操作:

SELECT t1.ID, 
       t1.Column1, 
       t2.sum_total AS Column2 
FROM your_table AS t1 
CROSS JOIN (SELECT SUM(Column1) AS sum_total
            FROM your_table) AS t2 
ORDER BY t1.ID ASC 

注意,基于派生表的方法比在Select中使用子查询更有效。在这种方法中,Sum的计算将只发生一次;而另一种方法将针对每一行进行计算。

Rextester DEMO

演示输出:

enter image description here