使用 SQL Server,我需要對表中的記錄進行匯總,并獲得一個相加的值。我的問題是,我需要根據第三列中的條件,對每條記錄中兩列中的一個值進行求和。
舉個例子。這里有一個表:
Station Location Contact ColToSum AltColToSum ColToUse
車站 1 West Smith 4 10 1
站1西史密斯 0 10 2
站1西史密斯 2 10 1
站1西史密斯7 10 1
站2北瓊斯5 10 1
站2北瓊斯0 10 2
站2北瓊斯0 10 2
站 3 南布朗 5 10 1
站3南布朗0 10 2
站3南布朗0 10 2
站3南布朗1 10 1
最右邊的一列包含了需要添加到總和中的列,可以是ColToSum或AltColToSum。如果ColToUse = 1,ColToSum的值被添加到總和中;如果ColToUse = 2,AltColToSum被添加到總和中。資料被分組以得到一個總結,就像這樣:
Station 1 West Smith 23
站 2 北瓊斯 25
站3南布朗26
我一直在玩CASE陳述句和GROUP BY子句,但我似乎不能得到我想要的結果。我也嘗試過使用PARTITION,但我對這個還不是很熟練。如果有任何幫助,我將不勝感激。
uj5u.com熱心網友回復:
只要使用條件聚合:
select station, location, contact,
sum(case when coltouse = 1 then coltosum
when coltouse = 2 then altcoltosum
end) as sum
from t
group by station, location, contact;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/332020.html
標籤:
上一篇:在MariaDB的日期范圍和時間范圍之間進行SQL查詢
下一篇:針對多個資料庫的SQL查詢
