web-dev-qa-db-ja.com

sum()を計算するには、列という名前の2つのエイリアス-SQLで

クエリで宣言された2つの一時列名のsum()を計算するには-SQLで

studテーブルには2つの列しかありません_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
_

クエリを実行するための一時的な名前として宣言された列名を使用して、grandtotalsum(total)+sum(total1)として計算する方法。

Cteでは重複する列名をサポートしていませんか?

重複する列名をサポートするためにそれを利用する方法

13
Innova

直接実行することはできません。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標準)でも機能します)。

22
marc_s