RTselect * from 表名 group by 列名----- 報錯 ORA-00979: 不是 GROUP BY 表達式數據庫:oracle10g* 換成 列名也不行
3 回答

PIPIONE
TA貢獻1829條經驗 獲得超9個贊
group by 的意思為分組匯總。
使用了group by 后,要求Select出的結果字段都是可匯總的,否則就會出錯。
比如,有:{學號,姓名,性別,年齡,成績}字段
這樣寫:
SELECT 學號,姓名,性別,年齡,sum(成績)
FROM 學生表
GROUP BY 學號
就是錯的,因為 “姓名、性別、年齡”未被匯總,且不一定是單一。
這樣寫:
SELECT MAX(學號),MAX(姓名),MAX(性別),MAX(年齡),sum(成績)
FROM 學生表
GROUP BY 學號
是對的,匯總出每一同學號學生的總成績。注意的是,只要學號相同,別的如果有不同,取它們值最大的一條作為顯示輸出。
這樣寫:
SELECT 學號,姓名,性別,年齡,sum(成績)
FROM 學生表
GROUP BY 學號,姓名,性別,年齡
這樣寫也是對的,但注意的是,學號,姓名,性別,年齡中,只要有一個不同,就會當成另一條記錄來匯總。
添加回答
舉報
0/150
提交
取消