我有一種情況,即將多個數據集插入臨時表中。最後,我希望在臨時表的所有行中顯示這些多個數據集的總行數。例如:要顯示數據集中所有行的1列總和
cnt1 name age
300 peter 21
200 piper 22
所需的結果集:
cnt1 name age
500 peter 21
500 piper 22
這是我在一個很長的存儲過程結束尋找的結果。我無法弄清楚如何在單個列上合計並在所有行中顯示總和。
我有一種情況,即將多個數據集插入臨時表中。最後,我希望在臨時表的所有行中顯示這些多個數據集的總行數。例如:要顯示數據集中所有行的1列總和
cnt1 name age
300 peter 21
200 piper 22
所需的結果集:
cnt1 name age
500 peter 21
500 piper 22
這是我在一個很長的存儲過程結束尋找的結果。我無法弄清楚如何在單個列上合計並在所有行中顯示總和。
用窗函數:
select sum(cnt1) over() as cnt1, name, age
from TableName
編輯:
select (select sum(distinct cnt1) from TableName) as cnt1, name, age
from TableName
嘗試此操作(如果需要,可以使用union all
將其追加到您之前的結果中)。
Select sum(Cnt1) over() as Cnt1, name, age
from MyTable
我的答案最初用於over (partition by 1)
,但我看到這是不必要的。
@Giorgi的反應是相似但更好。 :) – APH
我們如何確保它只添加不同的cnt1值?我認爲我們不能用OVER子句添加DISTINCT。任何解決方法?但感謝您的答案。 – rvphx
@rvphx,參見編輯答案。 –
謝謝喬治。編輯工作就像一個魅力。非常感謝。 – rvphx