设为首页 加入收藏

TOP

Oracle基础(四):单表查询(二)
2015-11-21 01:51:56 来源: 作者: 【 】 浏览:1
Tags:Oracle 基础 单表 查询
ptno ,a.job order by a.deptno ; 分析:
先对【部门】分组,再对【岗位】分组。
【排序】都是放在末尾
3)显示部门平均工资低于2000 的部门号和它的平均工资
SQL:
SELECT avg(a.sal) as "平均工资", a.deptno FROM emp a group by a.deptno having avg(a.sal)<2000
分析:
having:限制分组显示结果。后面不支持别名,只能重新计算。
先分组,计算各个部门的平均工资。再利用having对分组后的结果进行删选。 3、原则总结: 1)聚合函数(avg...)只能出现在选择列表、having、order by 子句中,绝不能出现在group by 函数 和where中。 2)如果在 select 语句中同时包含 group by 、having、order by 那么他们的顺序是 group by 、having、order by 。 3)在选择列中如果有列、表达式和聚合函数,那么这些列和表达式必须有一个出现在 group by 子句中,否则就会出错。
SELECT avg(a.sal), max(a.sal),a.deptno,a.job FROM emp a group by a.deptno, a.job;
这边的 deptno 和 job 必须都要 出现在 group by 中。
原因为聚合函数 每次返回一个结果
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SqlServer自动备份、自动压缩、自.. 下一篇网络攻防之SQL注入攻击

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: