一尘不染

要计算sum()两个名为列的别名-在SQL中

sql

计算在查询中声明的两个临时列名称的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

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

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

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


阅读 137

收藏
2021-03-10

共1个答案

一尘不染

您不能直接做到这一点-您需要使用CTE(公用表表达式)之类的东西-像这样:

;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

它在SQL Server 2005和更高版本(以及支持CTE(这是ANSI标准)的某些其他数据库系统)中运行。

2021-03-10