1.group by
分组查询数据
seleclt column,分组函数(column) from table group by 分组表达式 order by 排序字段;
分组函数详解:http://blog.csdn.net/yhl_jxy/article/details/50705605
对group by的使用说明:
(1)如果select中的column不包含在分组函数中,必须在group by表达式中,否则报错。
(2)包含在group by 中的字段,可以选择性在select中出现。
(3)where中可以增加查询限制。
(4)order by 排序处理。
create table mytest( id number(11) primary key, name varchar2(10), age number(3) ) insert into mytest values(1,'one',18); insert into mytest values(2,'two',18); insert into mytest values(3,'three',22); commit; select avg(age),max(avg(age)),min(age),sum(age),count(id) from mytest where age is not null group by age order by id; select avg(age) from mytest where age is not null group by age order by age; select id,age from mytest group by id,age;--多个字段分组 select id,age,avg(age) from mytest group by id,age;
2.group by错误用法
(1)如果没有group by分组,select中不允许单个字段和分组函数混合使用
select id,avg(age) from mytest;--报错
(2)不允许在where后使用分组函数
select avg(age) from mytest where age is not null and avg(age) > 10--报错处:此处不允许使用分组函数 group by age order by age;
select avg(age) from mytest where age is not null group by age having avg(age) > 10 order by age;