qwfc.net
当前位置:首页 >> orAClE 中group By 的用法问题 >>

orAClE 中group By 的用法问题

我甚是理解你 我开始也很不明白 order by是排序 如order by id 表示按id 升序排列 order by id,num 表示优先按照id排序 id相同的再按num排序 这个意思 group by 是分组 首先用group by 的前提是你的select里边用了聚合函数如sum(),avg(),min(),max(

group by:指定将查询结果进行分组.groud_expression为分组表达式.用法:SQL>SELECT cPcode,cEname,cSex,cPhone FROM employee GROUP BY cPcode,cEname,cSex,cPhone(employee为表明,cPcode,cEname,cSex,cPhone为表的字段名)

group by 不是在任何是一个数据库语言中都一样嘛,当需要对查询结果进行分类的时候就需要啊:select * from student group by sex就是根据学生性别将查询结果分为两组(理论上两组,当然也有一组的情况,三组的就不知道了).

分组统计时候用.比如 select count(*) from tab where age<100 group by age;意思是年龄小于100的按照年龄来统计每个年龄的人数.select age ,count(*) from tab group by age having count(*)>1 统计年龄数大于1的人,唯一的年龄不统计在内

sum求和;avg求平均值;union 常在拼装结果时使用,比如:select 日期,sum(销量),avg(销量) from table group by 日期;求每日的销量总和和每日的销量均值;select sum(ab1),avg(ab1) from ( select a1 ab1,a2 ab2 from table1 union select b1 ab1,b2 ab2 from table2);

select count(*) from student group by 列group by 是分组,与聚合函数并列使用,不能没有聚合函数的情况下使用,如果有多个选择列,必须group by后面也跟列,如果加条件用HAVING

可以用函数,这条语句报错的原因是select后面的字段和group by后面的字段不同,改成select nickname,SUBSTR(nickname,0,3),sum(id) from simpletest group by SUBSTR(nickname,0,3);就可以了

没什么不一样啊,只是显示顺序的问题,你可以加一个order by deptno子句

这边count(id)和count(*)是等价的是说你group by 后,name相同的数据有2个不是说id相同

从感觉上来说,是先执行where查询符合条件的结果集,再执行order by,把查询出来的结果集进行排序.此问题设计到rdbms内部实现及其查询优化的问题,你执行一条sql语句时,rdbms的sql解析器会生成相应的执行树,按照执行树的顺序对底层存储的数据操作,而后返回处理结果.这里先执行哪一个子句、后执行哪一个子句是有sql解析器决定的,sql解析器会给出一条它认为最优的执行树.

网站首页 | 网站地图
All rights reserved Powered by www.qwfc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com