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 阅读(3566) 评论(0)  编辑  收藏 所属分类: Oracle


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

公告

我曾经听到这么一个故事: 一个年轻的程序员问一个老程序员(一个比较牛逼的公司的CTO) 年轻程序员: 你为什么这么牛X., 就好像没有你不会的。老程序员: 积累的。年轻程序员: 怎么才能积累到您的程度呢。我每天都在积累。但是似乎都没有感觉到进步。老程序员: 我从20岁开始做到了一件事情,直到今天,而且尽可能地保证不间断。年轻程序员: 到底是什么? 老程序员: 我每天保证自己有2个小时在学习新的东西。

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

相册

收藏夹

Java Website

java技术博客

搜索

最新评论

阅读排行榜

评论排行榜