假設我有包括學生的SSN,大學校園,他們出席,併爲某一年的工資數據。是這樣的...保持與GROUP BY CUBE唯一行
create table #thetable (SSN int, campus int, wage int);
insert into #thetable(SSN, campus, wage)
values
(111111111,1,100),
(111111111,2,100),
(222222222,1,250),
(222222222,2,250),
(333333333,1,50),
(444444444,2,400);
現在,我希望讓學生在每個校園的平均工資,學生的所有校區的平均工資放在一起。所以我做這樣的事情:
select campus, avg(wage)
from #thetable
group by cube(campus);
問題是,我不想重複計算在校園分組在一起時參加兩個校園的學生。這是輸出我得到(雙數學生111111111和2222222222):
Campus (no column name)
1 133
2 250
NULL 191
我期望的輸出是這樣的(不重複計算):
Campus (no column name)
1 133
2 250
NULL 200
可以這樣不使用多個查詢來完成和UNION
運算符?如果是這樣,怎麼樣? (順便說一句,我知道這表是不歸......會正火幫忙嗎?)
我在CTE中徘徊 - 從技術上說,只有一個查詢 - 但無法避免UNION和多個全表掃描。除了各種CUBE操作員(我從來沒有使用過),我不認爲這是可能的。 –
沒有UNION和子查詢。這似乎很難/不可能。 –