一起使用1集合函数列表AVGDISTINCTALLN取平均值COUNTDISTINCTALLNexpr统计数量MAXDISTINCTALLN取最大值MINDISTINCTALLN取最小值SUMDISTINCTALLN取合计值9J2EEzxwSTDDEVDISTINCTALLN取偏差值如果组里选择的内容都相同结果为0VARIANCEDISTINCTALLN取平方偏差值2使用集合函数的语法SELECTcolum
group_fu
ctio
FROMtableWHEREco
ditio
GROUPBYgroup_by_expressio
HAVINGgroup_co
ditio
ORDERBYcolum
3使用cou
t时的注意事项SELECTCOUNTFROMtableSELECTCOUNT常量FROMtable都是统计表中记录数量如果没有PK后者要好一些SELECTCOUNTall字段名FROMtableSELECTCOUNT字段名FROMtable不会统计为NULL的字段的数量SUMAVG时都会忽略为NULL的字段4用groupby时的限制条件SELECT字段名不能随意要包含在GROUPBY的字段里GROUPBY后ORDERBY时不能用位置符号和别名限制GROUPBY的显示结果用HAVING条件5例子SQLselecttitlesumsalarypayrollfroms_empwheretitlelikeVPgroupbytitlehavi
gsumsalary5000orderbysumsalarydesc找出某表里字段重复的记录数并显示SQLselectduplicatefield
amesfromtable_
amegroupbylistoutfieldshavi
gcou
t16判断题TF
f1Groupfu
ctio
si
clude
ullsi
calculatio
sF2Usi
gthehavi
gclausetoexcluderowsfromagroupcalculatio
F解释Groupfu
ctio
都是忽略NULL值的如果您要计算NULL值用NVL函数Where语句在GroupBy前把结果集排除在外Havi
g语句在GroupBy后把结果集排除在外六、子查询1查询语句可以嵌套例如SELECT……FROMSELECT……FROM表名1表名2……WHERE条件WHERE条件22何处可用子查询当查询条件是不确定的条件时DMLi
sertupdatedelete语句里也可用子查询HAVING里也可用子查询3两个查询语句的结果可以做集合操作例如并集UNION去掉重复记录并集UNIONALL不去掉重复记录10J2EEzxw差集MINUS交集INTERSECT4子查询的注意事项先执行括号里面的SQL语句,一层层到外面内部查询只执行一次如果里层的结果集返回多个,不能用等比较符要用IN5子查询的例子1SQLselecttitleavgsalaryfroms_empgroupbytitleHavi
gavgsalaryselectmi
avgsalaryfroms_empgroupbytitle找到最低平均工资的职位名称和工资5子查询的例子2子查询可以用父查询里的表名这条SQL语句是对的SQLselectcty_
amefromcitywherest_codei
selectst_codefromstatewherest_
ameTENNESSEEa
dcityc
t_codestatec
t_code说明:父查询调用子查询只执行一次.6取出结果集的80到100的SQL语句ORACLE处理每个结果集只有一个ROWNUM字段标明它的逻辑位r