Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. SELECT * FROM emp;
  2. SELECT * FROM sales;
  3. SELECT * FROM salgrade;
  4.  
  5. SELECT a.ename, a.job, a.sal, a.deptno, b.grade FROM emp a JOIN salgrade b ON a.sal BETWEEN b.losal AND b.hisal;
  6.  
  7.  
  8. -- ex1
  9.  
  10. SELECT MAX(a.sal) as max,MIN(a.sal) as min, ROUND(AVG(a.sal),2) as avg, job, b.grade as grade
  11. FROM emp a JOIN salgrade b ON a.sal BETWEEN b.losal AND b.hisal GROUP BY grouping sets(a.job, b.grade);
  12.  
  13. -- ex 1
  14. SELECT MAX(a.sal) as max,MIN(a.sal) as min, ROUND(AVG(a.sal),2) as avg, job, b.grade as grade
  15. FROM emp a JOIN salgrade b ON a.sal BETWEEN b.losal AND b.hisal GROUP BY rollup(a.job, b.grade);
  16.  
  17. --ex3
  18.  
  19. SELECT MAX(a.sal) as max, MIN(a.sal) as min, ROUND(AVG(a.sal),2) as avg,
  20. SUM(a.sal) as sum, a.job, b.ename as manager
  21. FROM emp a JOIN emp b ON a.mgr=b.empno GROUP BY rollup(a.job, b.ename);
  22.  
  23. --ex4
  24.  
  25. SELECT MAX(a.sal) as max, MIN(a.sal) as min, ROUND(AVG(a.sal),2) as avg,
  26. SUM(a.sal) as sum, a.job, GROUPING(a.job), b.ename as manager, GROUPING(b.ename)
  27. FROM emp a JOIN emp b ON a.mgr=b.empno GROUP BY rollup(a.job, b.ename);
  28.  
  29. --ex5
  30.  
  31. SELECT * FROM emp a JOIN salgrade b on a.sal BETWEEN b.losal AND b.hisal;
  32. SELECT * FROM emp a JOIN emp b on a.mgr = b.empno;
  33.  
  34. SELECT MAX(a.sal) as max, MIN(a.sal) as min, ROUND(AVG(a.sal),2) as avg,
  35. SUM(a.sal), a.grade as grade,
  36. DECODE(GROUPING(a.grade), 1, 'TOTAL', 0) as GRD_TOTAL,
  37. b.manager as manager,
  38. DECODE(GROUPING(b.manager), 1, 'TOTAL', 0) as MGR_TOTAL
  39. FROM (SELECT emp.empno as id, emp.ename, emp.sal as sal, salgrade.grade as grade
  40. FROM emp JOIN salgrade on emp.sal BETWEEN salgrade.losal AND salgrade.hisal) a
  41. JOIN
  42. (SELECT e.empno as id, e.ename as name, m.ename as manager
  43. FROM emp e JOIN emp m on e.mgr = m.empno) b
  44. ON a.id=b.id GROUP BY ROLLUP(a.grade, b.manager);
  45.  
  46. --ex6
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement