简单的oracle sql语句练习

求每个部门的平均薪水

select deptno,avg(sal) from emp group by deptno

每个部门同一个职位的最大工资

select deptno,job,max(sal) from emp group by deptno,job

按照部门编号进行分组,分组之后求每一个部门的平均薪水,要求显示平均薪水大于2000的部门的部门编号和平均薪水

select deptno,avg(sal) group by deptno having avg(sal)>2000

where和having的区别

  • 1.having配合group by使用
  • 2.where执行在分组前,having执行在分组后

薪水大于1200的雇员,按照部门编号进行分组,分组之后平均薪水必须大于1700,求分组内的平均工资,平均工资按降序排列

select deptno,avg(sal) from emp where sal>1200 group by deptno having avg(sal)>1500 order by avg(sal) desc

求最大工资那个人的姓名和薪水

select ename,sal from emp where sal =(select max(sal) from emp)

最大工资

select max(sal) from emp

哪些人的工资位于 所有人得平均工资之上

select ename,sal from emp where sal>(select avg(sal) from emp)

所有人的平均工资

select avg(sal) from emp

原文地址:https://www.cnblogs.com/hglibin/p/9903972.html

时间: 2024-10-22 17:36:16

简单的oracle sql语句练习的相关文章

oracle sql语句取得本周本月本年的数据

[sql] --国内从周一到周日 国外是周日到周六  select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期-- [sql] --取本周时间内的数据  select * from table  where DTIME >=trunc(next_day(sysdate-8,1)+1) and DTIME<=trunc(next_day(sysdate-8,1)+7)+1 ;     select * from table  whe

Oracle Sql语句优化

1.最高效的删除重复记录方法 (因为使用了ROWID)   例子:  DELETE FROM  EMP E  WHERE  E.ROWID > (SELECT MIN(X.ROWID) FROM  EMP X  WHERE  X.EMP_NO = E.EMP_NO); 2.在含有子查询的 SQL 语句中 , 要特别注意减少对表的查询   例子:  SELECT TAB_NAME FROM TABLES WHERE (TAB_NAME,DB_VER) = (SELECT TAB_NAME,DB_V

获取oracle sql语句中绑定变量值的方法

在诊断 sql的性能问题时,我们有时候需要获取其绑定变量的实际值,然后将此实际值带入到sql语句当中,用原来的sql构成select语句(带where条件),实际的执行一下,看一下选择性如何. 本文就是说获取其绑定变量值的方法.本文的编写得到枯荣长老的帮助,在此表示感谢. 本文适用于与oracle 10G或者更高版本的db. alter session set nls_date_format = 'yyyy-mm-dd,hh24:mi:ss'; set linesize 400 col sql_

db2和oracle sql 语句中计算两个时间差的语法

db2 sql语句中计算两个日期相差的语法 结束日期为:2015-10-10  11:30:00 开始日期为:2015-09-09  10:40:00 (1)timestampdiff(8,char(结束时间-开始时间) )(加时分秒计算,会舍去零数)值为744小时 (2)(days(结束时间)-days(开始时间))*24 +hour(结束时间)-hour(开始时间) (不加时分秒计算)值为745小时 (3)Days(结束日期)-days(开始日期)的值为31天 (4)Day(结束日期)-da

备忘几个简单基本的sql语句

说明:几个简单基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like '%value1%' ---like的语法很精妙,

Oracle SQL语句大全(一)

Oracle SQL语句大全  1.desc(描述) emp    描述emp这张表 2.desc    dept       部门表 3.desc salgrade      薪水等级 4.select *from table 查找表中的元素 5.dual     是系统中的一张空表 6.select *from dual  7.select sysdate from dual 取出系统时间  8.select ename,sal*12 "annul sal"(取的别名) from 

Oracle系列:(31)Oracle SQL语句优化

(01)选择最有效率的表名顺序(笔试常考) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名, FROM子句中写在最后的表将被最先处理, 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表放在最后, 如果有3个以上的表连接查询,那就需要选择那个被其他表所引用的表放在最后. 例如:查询员工的编号,姓名,工资,工资等级,部门名       select emp.empno,emp.ename,emp.sal,salgrade.grade,dept.dname       f

Oracle SQL语句优化34条

非常好用的SQL语句优化34条 1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基 础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACL

oracle SQL语句练习MERGE、模糊查询、排序、

Oracle支持的SQL指令可分为数据操作语言语句.数据定义语言语句.事务控制语句.会话控制语句等几种类型:1.数据操作语言语句数据操作语言语句(Data manipulation language,DML)用于进行数据的检索和更新操作.数据检索是数据库应用中使用频率最高的操作类型,因此数据检索的效率对数据库的整体性能影响显著.数据更新包括数据的插入.修改和删除等操作,数据更新操作具有一定的风险性,在其执行过程中DBMS必须保证数据的一致性,以确保数据有效.SELECT.INSERT.DELET