group子句的作用屏富,可以使用group by子句將表中的數(shù)據(jù)分成若干組
舉個栗子累盗。
? ? ? ? 求表中各部門的平均工資厨姚,要求顯示部門號兢榨,部門的平均工資
? ? ? ? select? ? deptno,avg(sal)? ? from? ? emp? ? group? ? by? ? deptno;
? ? ? ? 我們可以把上述SQL抽象出一個模板
? ? ? ? select? ? a,b,c,組函數(shù)(x)? ? from? ? table? ? group? ? by? ? a,b,c;
? ? ? ? 我們又可以得到一個結(jié)論啦绰垂!在select列表中所有未包含在組函數(shù)的列都應(yīng)該包含在group by子句中室奏。
繼續(xù)舉栗子
? ? ? ? 求每個部門的平均工資,要求顯示部門的平均工資
? ? ? ? select? ? avg(sal)? ? from? ? emp? ? gruop? ? by? ? deptno;????
? ? ? ? 結(jié)論辕坝!結(jié)論窍奋!包含在group子句中的列不必包含在select列表中。
今年栗子大豐收啊酱畅,還要舉栗子
? ? ? ? 按照部門不同的職位統(tǒng)計員工工資的總額(使用多個列分組)
? ? ? ? select? ? deptno,job,sum(sal)? ? from? ? emp? ? group? ? by? ? deptno,job;
? ? ? ? 先按第一個列分組琳袄,如果第一個列相同。再按第2個列分組
栗子壞了--非法使用分組函數(shù)
? ? ? ? select? ? deptno,count(ename)? ? from? ? emp;
? ? ? ??