posts - 84,  comments - 54,  trackbacks - 0

          oracle數據庫中
          在scott用戶下的emp和dept表中查詢

          1,查詢平均工資最高的那個部門的名稱,最高工資,最低工資,平均工資。

          ?

          ?1 1 ,查詢平均工資最高的那個部門的名稱,最高工資,最低工資,平均工資。
          ?2 ???? 1 > 使用rownum的方式
          ?3 ???? select ?????d.dname?部門名稱,
          ?4 ??????????????? min (e.sal)?最低工資,
          ?5 ??????????????? max (e.sal)?最高工資,
          ?6 ??????????????? avg (e.sal)?平均工資
          ?7 ???? from ?emp?e,dept?d? where ?e.deptno = d.deptno? and ?e.deptno =
          ?8 ????????????????????????( select ?deptno? from ?
          ?9 ????????????????????????( select ? avg (sal)? as ?avgsal,deptno? from ?emp?
          10 ?????????????????????????? group ? by ?deptno? order ? by ?avgsal? desc )? where ?rownum? = ? 1 )?
          11 ???? group ? by ?d.dname;
          12
          13 ???? 2 > 不使用rownum的方式
          14
          15 ???? select ??d.dname?部門名稱,
          16 ???????? min (e.sal)?最低工資,
          17 ???????? max (e.sal)?最高工資,
          18 ???????? avg (e.sal)?平均工資
          19 ???????? from ?emp?e,dept?d? where ?e.deptno? = ?d.deptno?
          20 ???????? and ?d.deptno? = ?????( select ?aa.deptno? from ?( select ? avg (sal)? as ?avgsal,deptno? from ?emp? group ? by ?deptno)?aa?
          21 ???????????????????? where ?aa.avgsal? = ?( select ? MAX (avgsal)? from ?
          22 ????????????????????????????( select ? avg (sal)? as ?avgsal,deptno? from ?emp? group ? by ?deptno)))
          23 ???????? group ? by ?d.dname;

          ?

          2,求工資由高到低,排名第三的員工姓名

          1 select ? * ? from ( select ? * ? from ?emp? order ? by ?sal? desc )? where ?rownum? < ? 4
          2 minus
          3 select ? * ? from ( select ? * ? from ?emp? order ? by ?sal? desc )? where ?rownum? < ? 3

          3,求當前系統的日期,不要年和月。

          1 select ?to_char(sysdate, ' ----mm--dd ' )? from ?dual;

          ?

          4,查詢處員工人數最多的那個部門的
          ?????? 部門編號,部門名稱,部門人數

          ?1 1>不使用rownum的方式
          ?2 ????select?????e.deptno??部門編號,
          ?3 ????????d.dname??????部門名稱,
          ?4 ????????count(*)??部門人數
          ?5 ????from?emp?e,dept?d?where?e.deptno?=?d.deptno?and?e.deptno?=
          ?6 ????(select?aa.deptno?from
          ?7 ????(select?count(empno)?as?empno_count,deptno?from?emp?group?by?deptno)?aa?where?aa.empno_count?=
          ?8 ????(select?max(empno_count)?as?max_count?from(
          ?9 ????????????????????????????????select?count(empno)?as?empno_count,deptno?from?emp?group?by?deptno)))
          10 ????group?by?d.dname,e.deptno;
          11
          12 ????2>使用rownum的方式
          13 ????select?e.deptno??部門編號,
          14 ?????????d.dname??部門名稱,
          15 ????????count(*)?部門人數
          16 ????from?emp?e,dept?d?where?e.deptno?=?d.deptno?and?e.deptno?=
          17 ????(select?deptno?from
          18 ????(select?count(empno)?as?empno_count,deptno?from?emp?group?by?deptno?order?by?empno_count?desc)?where?rownum?=?1)
          19 ????group?by?e.deptno,d.dname;


          5,查詢工資成本最高的那個部門的
          ?????? 部門編號,部門名稱,部門月工資成本



          6,按 某某人 的上級是 某某人的格式查詢處所有員工的信息,
          ????? 如果某某人沒有上級,則上級的名字為“未知”

          6

          ?


          7,查詢處在公司工作時間最長的原工信息
          ????? 部門名稱,員工姓名,在公司工作的時間

          7題


          8,顯示裁員信息,例如,那個部門只有一個就不裁,若部門員工人數大于1人,則裁員工工資最高的那個人。

          8題



          EMP表

          EMPNO ENAME????? JOB????????????MGR??? HIREDATE????????? SAL????? COMM????DEPTNO
          ----- ---------- --------- ----- ----------- --------- --------- ------
          ?7369 SMITH????? CLERK???????????????7902????1980-12-17????????800.00?????????????????????20
          ?7499 ALLEN????? SALESMAN??????7698????1981-2-20????????1600.00??? 300.00???? 30
          ?7521 WARD?????? SALESMAN??????7698????1981-2-22????????1250.00??? 500.00???? 30
          ?7566 JONES????? MANAGER?????????7839????1981-4-2?????????2975.00?????????????????????20
          ?7654 MARTIN???? SALESMAN??????7698?????1981-9-28???? 1250.00?? 1400.00???? 30
          ?7698 BLAKE????? MANAGER?????????7839????1981-5-1?????????2850.00?????????????????????30
          ?7782 CLARK????? MANAGER?????????7839?????1981-6-9???????? 2450.00?????????????????????10
          ?7788 SCOTT????? ANALYST??????????7566????1987-4-19????????3000.00?????????????????????20
          ?7839 KING?????? PRESIDENT??????????????????????1981-11-17??? 5000.00?????????????????????10
          ?7844 TURNER???? SALESMAN??????7698????1981-9-8?????????1500.00????? 0.00????????30
          ?7876 ADAMS????? CLERK???????????????7788????1987-5-23????????1100.00?????????????????????20
          ?7900 JAMES????? CLERK???????????????7698????1981-12-3?????????950.00????????????????????????30
          ?7902 FORD?????? ANALYST????????????7566????1981-12-3??????? 3000.00???????????????????? 20
          ?7934 MILLER???? CLERK???????????????7782????1982-1-23??????? 1300.00?????????????????????10


          dept表

          DEPTNO????DNAME?????????????LOC
          ------????--------------????-------------
          ??? 10???????ACCOUNTING???? NEW YORK
          ??? 20????RESEARCH?????????????DALLAS
          ??? 30????SALES??????????????????????CHICAGO
          ??? 40????OPERATIONS??????? BOSTON

          posted on 2006-09-04 22:43 JavaCoffe 閱讀(872) 評論(1)  編輯  收藏 所屬分類: Oralce&&PL/SQL


          FeedBack:
          # re: 幾個高難度的select語句
          2006-09-10 20:18 | 徐海東
          第6題的另外一個答案:

          select e.deptno as 部門 ,e.ename as 員工名稱,nvl(d.ename,'未知') as 上級名稱
          from emp e left join emp d on e.mgr = d.empno  回復  更多評論
            
          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(5)

          隨筆分類(80)

          收藏夾(1)

          最新隨筆

          積分與排名

          • 積分 - 58287
          • 排名 - 893

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 唐山市| 四会市| 赣榆县| 太谷县| 从江县| 澜沧| 乐亭县| 玉田县| 拉孜县| 张掖市| 手游| 米脂县| 阳信县| 雅江县| 岱山县| 泰来县| 荔波县| 庆阳市| 蓝山县| 和平区| 商河县| 南木林县| 潜江市| 葵青区| 公主岭市| 台中县| 深泽县| 开原市| 监利县| 拉孜县| 嘉峪关市| 永清县| 灵宝市| 汉川市| 金山区| 阿尔山市| 新巴尔虎左旗| 图木舒克市| 喀什市| 子洲县| 安化县|