计算在查询中声明的两个临时列名称的sum()-在SQL中
stud表只有两列m1,m2。将total和total1作为临时名称给出。
stud
m1,m2
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)与列名声明为临时名称为查询执行。
grandtotal
sum(total)+sum(total1)
使用cte不支持重复的列名吗?
如何利用它来支持重复的列名
您不能直接做到这一点-您需要使用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标准)的某些其他数据库系统)中运行。