要计算sum()两个名为column的别名 - 在sql中

Inn*_*ova 13 sql alias sum

计算在查询中声明的两个临时列名的sum() - 在SQL中

stud表只有两列m1,m2.total和total1作为临时名称给出.

select 
   m1, m2, 
   SUM(m1) + SUM(m2) as Total,
   SUM(m1) + SUM(m2) as Total1 
from 
   stud 
group by 
   m1, m2
Run Code Online (Sandbox Code Playgroud)

如何计算grandtotal作为sum(total)+sum(total1)与声明的临时名称为查询执行的列名.

使用cte dos不支持重复的列名?

如何利用它来支持重复的列名

mar*_*c_s 22

你不能直接这样做 - 你需要使用像CTE(Common Table Expression)这样的东西 - 像这样:

;WITH sums AS 
(
   SELECT
      m1, m2, 
      SUM(m1) + SUM(m2) as Total,
      SUM(m1) + SUM(m2) as Total1 
   FROM
      dbo.stud 
   GROUP BY
      m1, m2
)
SELECT 
   m1, m2, 
   total, total1, 
   total+total1 AS 'GrandTotal' 
FROM 
   sums
Run Code Online (Sandbox Code Playgroud)

这适用于SQL Server 2005及更高版本(以及其他一些支持CTE的数据库系统 - 这是ANSI标准).