资源描述:
《崔巍 数据库系统及应用第4版0704分组汇总查询.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1分组及汇总查询对查询结果进行汇总计算聚合函数汇总一般汇总查询带明细的汇总查询使用GROUPBY的分组汇总查询使用COMPUTEBY的分组汇总查询使用COMPUTEBY和COMPUTE的汇总查询2语法格式SELECT<聚合函数>(expression)}[,...n]FROMtable_source[WHEREsearch_condition]SELECTGroup_id,<聚合函数>(expression)}[,...n]FROMtable_source[WHEREsearch_condition]GROUPBYGroup_id[HAVING…]SELECT...FROMt
2、able_source[WHEREsearch_condition][ORDERBYGroup_id][COMPUTE<聚合函数>(expression)}[,...n]BYGroup_id][COMPUTE<聚合函数>(expression)}[,...n]]3聚合函数聚合函数是对初始的查询结果进行计算然后得到最终的查询结果常用聚合函数COUNT(计数)AVG(计算平均值)MIN(计算最小值)MAX(计算最大值)SUM(求和)CHECKSUM(校验和)STDEV(计算标准差)……4一般汇总查询SELECT<聚合函数>(expression)}[,...n]FROMtable
3、_source[WHEREsearch_condition]5一般汇总查询举例找出供应商所在地的数目。SELECTCOUNT(DISTINCT地址)FROM订货.供应商求支付的工资总数和职工人数,以及所有职工的平均工资、最高工资和最低工资。SELECTSUM(工资),COUNT(*),AVG(工资),MAX(工资),MIN(工资)FROM基础.职工求北京和上海的仓库职工的工资总和。SELECTSUM(工资)FROM基础.职工JOIN仓储.仓库ON职工.仓库号=仓库.仓库号WHERE城市='北京'OR城市='上海'6带明细的汇总查询SELECTselect_listFROMta
4、ble_source[WHEREsearch_condition]COMPUTE<聚合函数>(expression)}[,...n]7带明细的汇总查询举例列出供应商的地址,并计算出供应商所在地的数目。SELECTDISTINCT地址FROM订货.供应商COMPUTECOUNT(地址)列出北京和上海仓库的职工姓名、工资、所在城市信息,并计算他们的职工人数、工资总和以及平均工资。SELECT姓名,工资,城市FROM基础.职工JOIN仓储.仓库ON职工.仓库号=仓库.仓库号WHERE城市='北京'OR城市='上海'COMPUTECOUNT(姓名),SUM(工资),AVG(工资)8使
5、用GROUPBY的分组汇总查询SELECTgroup_id,<聚合函数>(expression)}[,...n]FROMtable_source[WHEREsearch_condition]GROUPBYgroup_id[HAVINGsearch_condition]9使用GROUPBY的分组汇总查询举例查询每个仓库的职工人数和平均工资。SELECT仓库号,COUNT(*),AVG(工资)FROM基础.职工GROUPBY仓库号查询每个仓库工资相同的职工人数,结果按仓库号排序。SELECT仓库号,工资,COUNT(*)FROM基础.职工GROUPBY仓库号,工资ORDERBY仓
6、库号如下分组查询是否允许?SELECT仓库号,工资,COUNT(*)FROM基础.职工GROUPBY仓库号ORDERBY仓库号10SELECT仓库号,COUNT(*)FROM基础.职工GROUPBY仓库号,工资ORDERBY仓库号11使用GROUPBY+HAVING的分组汇总查询举例求至少有4个职工的每个仓库的职工人数和平均工资。SELECT仓库号,COUNT(*),AVG(工资)FROM基础.职工GROUPBY仓库号HAVINGCOUNT(*)>=4查询至少有2个职工的工资大于4250的每个仓库的职工人数和平均工资。SELECT仓库号,COUNT(*),AVG(工资)FRO
7、M基础.职工WHERE工资>4250GROUPBY仓库号HAVINGCOUNT(*)>=212使用COMPUTEBY的分组汇总查询SELECTselect_listFROMtable_source[WHEREsearch_condition]ORDERBYorder_expression[ASC
8、DESC]COMPUTE<聚合函数>(expression)}[,...n]BYexpressionORDERBY的必要性IfORDERBY子句是:ORDERBYa,b,c则COMPUTE…BY子句可以是如下三