group by,order by ,having
group by
-- 使用 group by 語句查詢
select count(studName) from student_1 group by study
select count(uname) from userluo group by age;
?
?
根據某一個字段進行分組
select age,count(*) from userluo group by age;
select uname,count(*) from userluo group by uname;
?
? 矛盾。。。。。
?
盡管
deptno
和
deptname
是一一對應的,但
group by
不知道。。。按照語法來檢查。。。
?Group by 后面也可以有多個字段,但是要求和前面一致。。。。。。。。
?
?
?
-- 單列分組
-- 顯示每個部門的平均工資和最高工資
Select deptno,avg(sal),max(sal) from emp
group by deptno;
?
-- 多列分組
-- 顯示每個部門、每種崗位的平均工資和最高工資
Select deptno,job,avg(sal),max(sal) from emp
group by deptno,job;?-- 注意: deptno 和 job 完全相同才顯示一條記錄。
?
?
?
?
?
Having
和
group by
配套使用。。。
可以在 group 分組以后再過濾,
select age,count(*) from userluo group by age having count(*)<2;
-- 使用 having 語句
select trim(studName),count(*) from student_1 group by trim(studName) having count(*)=2;
select count(*) studName from student_1 group by studName having count(*)=2;
?
order by
-- 使用 order by 語句 ,desc 是降序排列, asc 是升序排列 , 默認為升序排列
select * from student_1 order by age desc;
select * from student_1 order by age sname desc; 先按 age 排列,相同的 age 再按 sname 排列,
posted on 2009-03-28 14:26 luofeng225 閱讀(3573) 評論(0) 編輯 收藏 所屬分類: Oracle