oracle 不是單組分組函數(shù) 什么叫不是單組分組函數(shù)?
什么叫不是單組分組函數(shù)?它不是一組分組函數(shù)。一般情況下,在數(shù)據(jù)庫中執(zhí)行查詢語句時,不定期使用sum、AVG、count等聚合函數(shù),會報錯。例如,我們需要計算每個學生的最終分數(shù):從成績表中選擇姓名、總和
什么叫不是單組分組函數(shù)?
它不是一組分組函數(shù)。一般情況下,在數(shù)據(jù)庫中執(zhí)行查詢語句時,不定期使用sum、AVG、count等聚合函數(shù),會報錯。
例如,我們需要計算每個學生的最終分數(shù):從成績表中選擇姓名、總和(單科分數(shù))和總分。這樣,將報告錯誤。必須使用group by來聲明要用作分組計算基礎的字段。正確的寫作方法是:從成績表中選擇姓名、總和(單科成績)作為總分,按姓名分組。
現(xiàn)在名字不夠,還要加班級,所以寫:從成績表中選擇班級、姓名、總和(單科成績)作為總分,按姓名分組,實際又報錯了。
這是因為類只放在查詢列中,并且沒有用group by聲明。所以它應該是:從成績表中選擇班級,姓名,和作為總分,按班級分組,姓名。
不是單組分組函數(shù)?
選擇deptno,max(count(*)from EMP group by deptno,其中max(count(*)相當于分組兩次,那么對應Select中的其他列也需要分組兩次,例如:Select max(deptno),max(count(*)from EMP group by deptno原因很簡單。SQL語言是面向集合的。如果計算max(count(*),deptno對應哪一個?
oracle ORA-00937: 非單組分組函數(shù)?
這種錯誤報告通常使用聚合函數(shù),如count和sum,但不使用groupby來聲明分組模式。
例如,有一個學生表。字段包括:班級編號、學生編號和學生姓名?,F(xiàn)在我們需要知道每個班有多少人。如果查詢語句是這樣的:
從學生表中選擇班級編號,計數(shù)(學生編號)
,我們必須報告一個錯誤。我們必須告訴數(shù)據(jù)庫根據(jù)哪個字段進行分組。正確的書寫方法是:
選擇班級編號,從學生表中按班級編號分組計數(shù)(學生編號)