有没有办法选择all并在同一查询中获取所有列的总和?
SELECT *, SUM(Colname) FROM `Table`...
谢谢。
答案 0 :(得分:2)
这可以使用窗口函数轻松完成:
select t.*,
sum(some_value) over () as total_sum
from some_table as t;
这是标准SQL,适用于所有现代DBMS。
SQLFiddle:http://sqlfiddle.com/#!15/c1a74/1
答案 1 :(得分:0)
不,如果您想使用聚合函数,那么您必须GROUP BY
并最终获得您在GROUP BY col1, col2, col3
中指定的列的单行。
如果您想要多条记录(SELECT *
)并且还想要其中一条记录的SUM(Colname)
,请在2个单独的查询中执行此操作。
答案 2 :(得分:0)
是的,你可以用子查询
来做到这一点SELECT
*
FROM
Table,
(SELECT
SUM(Colname) SumColumn
FROM
Table) t1
我在SQL Server中使用这个小例子进行了测试
CREATE TABLE #Test (IntData INT, Data NVARCHAR(20))
INSERT INTO #Test(IntData, Data)
SELECT 1, 'Data1' UNION
SELECT 3, 'Data2' UNION
SELECT 5, 'Data3' UNION
SELECT 7, 'Data4' UNION
SELECT 9, 'Data5' UNION
SELECT 11, 'Data6'
SELECT
*
FROM
#Test,
(SELECT
SUM(IntData) SumIntData
FROM
#Test) t1
DROP TABLE #Test
希望这有帮助