显示各部门员工的工资,并附带显示该部门的最高工资,最低工资。

解决方案 »

  1.   

     
    这样的?
    with TAB1 as (
    select 'a' bmid, 1 ygid, 10000 sales from dual union all
    select 'a' bmid, 2 ygid, 11000 sales from dual union all
    select 'a' bmid, 3 ygid, 9000 sales from dual union all
    select 'a' bmid, 4 ygid, 4000 sales from dual union all
    select 'a' bmid, 5 ygid, 5000 sales from dual union all
    select 'a' bmid, 6 ygid, 3000 sales from dual union all
    select 'b' bmid, 7 ygid, 10000 sales from dual union all
    select 'b' bmid, 8 ygid, 11000 sales from dual union all
    select 'b' bmid, 9 ygid, 9000 sales from dual union all
    select 'b' bmid, 10 ygid, 4000 sales from dual union all
    select 'b' bmid, 11 ygid, 5000 sales from dual union all
    select 'b' bmid, 12 ygid, 3000 sales from dual 

    SELECT BMID ,YGID,SALES,MAX(SALES) over (partition by BMID) MAX,MIN(SALES) over (partition by BMID) MIN FROM TAB1 
      

  2.   

    将emp表中的数据排序,10部门按工资从高到低排,其他部门也类似。
      

  3.   

    SELECT T.*,ROW_NUMBER()OVER(PARTITION BY JOB ORDER BY SAL DESC)RN FROM SCOTT.EMP T
      

  4.   

    也可以这样写:SELECT a.BMID,a.YGID,a.SALES,b.maxsales,b.minsales FROM TAB1 a,
    (select bmid,max(sales) as maxsales,min(sales) as minsales from tab1 group by bmid) b 
    where a.bmid = b.bmid