icatalin

BD laborator

Nov 12th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.92 KB | None | 0 0
  1. --lab 5
  2. --1
  3. SELECT department_name, job_title, avg(salary)
  4. FROM departments d JOIN employees e
  5. ON d.department_id = e.department_id
  6. JOIN jobs j
  7. ON j.job_id = e.job_id
  8. GROUP BY rollup(department_name, job_title);
  9.  
  10. --1b
  11. SELECT department_name, job_title, round(avg(salary)),
  12. GROUPING (department_name) Dep, GROUPING(job_title) job
  13. FROM departments d JOIN employees e
  14. ON d.department_id = e.department_id
  15. JOIN jobs j
  16. ON j.job_id = e.job_id
  17. GROUP BY rollup(department_name, job_title);
  18.  
  19. --2
  20. SELECT department_name, job_title, round(avg(salary))
  21. FROM employees
  22. JOIN departments USING (department_id)
  23. JOIN jobs USING (job_id)
  24. GROUP BY cube (department_name, job_title);
  25.  
  26. --2b
  27. SELECT department_name, job_title, round(avg(salary)),
  28.   decode(GROUPING(department_name),'0','Dep','Nu dep') AS "Dep",
  29.   decode(GROUPING(job_title),'0','Job','Nu job') AS "Job"
  30. FROM employees
  31. JOIN departments USING (department_id)
  32. JOIN jobs USING (job_id)
  33. GROUP BY cube (department_name, job_title);
  34.  
  35. --3
  36. SELECT department_name, job_title, e.manager_id, MAX(salary), SUM(salary)
  37. FROM employees e
  38. JOIN departments d ON e.department_id = d.department_id
  39. JOIN jobs j ON j.job_id = e.job_id
  40. GROUP BY GROUPING sets(department_name, job_title), (job_title, e.manager_id);
  41.  
  42. --4
  43. SELECT MAX(salary)
  44. FROM employees
  45. HAVING MAX(salary) >= 1500;
  46.  
  47. --5
  48. SELECT last_name
  49. FROM employees ext
  50. WHERE salary >=
  51.       (
  52.       SELECT avg(salary)
  53.       FROM employees
  54.       WHERE department_id = ext.department_id
  55.       AND employee_id != ext.employee_id
  56.       );
  57.      
  58. --5b
  59. SELECT last_name, department_name, avg(salary),s, COUNT(employee_id)
  60. FROM employees
  61. JOIN
  62.   (
  63.   SELECT avg(salary)
  64.   FROM employees
  65.   JOIN departments
  66.   GROUP BY department_id
  67.   )tabel ON department_id = tabel.department_id
  68.   JOIN (
  69.   SELECT COUNT(employee_id) c, department_id
  70.   FROM employees
  71.   GROUP BY department_id
  72. )tabel2; --incomplet
  73.  
  74. --5
  75. SELECT last_name,
  76.     (SELECT department_name
  77.     FROM departments
  78.     WHERE ext.department_id = department_id) Dep,
  79.     (SELECT round(avg(salary))
  80.     FROM employees
  81.     WHERE ext.department_id = department_id) Medie,
  82.     (SELECT COUNT (employee_id)
  83.     FROM employees
  84.     WHERE ext.department_id = department_id) Nr
  85.   FROM employees ext;
  86.  
  87. --6
  88. SELECT last_name, salary
  89. FROM employees
  90. WHERE salary>ALL
  91.   (SELECT avg(salary)
  92.   FROM employees
  93.   GROUP BY department_id);
  94.  
  95. --6
  96. SELECT last_name, salary
  97. FROM employees
  98. WHERE salary>
  99.     (SELECT MAX(avg(salary))
  100.     FROM employees
  101.     GROUP BY department_id);
  102.    
  103. --7
  104. SELECT last_name, salary
  105. FROM employees ext
  106. WHERE salary=
  107.     (SELECT MIN(salary)
  108.     FROM employees
  109.     WHERE department_id = ext.department_id
  110.     GROUP BY department_id);
  111.    
  112. --7b
  113. SELECT last_name, salary
  114. FROM employees
  115. WHERE (salary, department_id) IN
  116.       (SELECT MIN(salary), department_id
  117.       FROM employees
  118.       GROUP BY department_id);
  119.      
  120. --7c
  121. SELECT last_name, salary
  122. FROM employees e JOIN
  123. SELECT MIN(salary) --incomplet
  124.  
  125. --8
  126. SELECT last_name
  127. FROM employees
  128. JOIN departments
  129. ON ext.department_id = d.department_id
  130. WHERE hire_date =
  131.     (
  132.     SELECT MIN(hire_date)
  133.     FROM employees
  134.     WHERE department_id = ext.department_id
  135.     GROUP BY department_id
  136.     )
  137.     ORDER BY department_name;
  138.    
  139. --9
  140. SELECT last_name, department_id
  141. FROM employees e
  142. WHERE EXISTS (
  143.       SELECT 'string salary'
  144.       FROM employees
  145.       WHERE department_id = e.department_id AND salary =
  146.         (
  147.         SELECT MAX(salary)
  148.         FROM employees
  149.       WHERE department_id=30
  150.       GROUP BY department_id)
  151.       );
  152.    
  153. --10
  154. SELECT last_name, salary
  155. FROM (SELECT *
  156.     FROM employees
  157.     ORDER BY salary DESC)
  158.     WHERE rownum<=3;
  159.    
  160. --11
  161. SELECT employee_id, last_name, first_name
  162. FROM employees ext
  163. WHERE 2 <= (
  164.     SELECT COUNT(employee_id)
  165.     FROM employees
  166.     WHERE manager_id = ext.employee_id
  167.     GROUP BY manager_id
  168.     );
  169.    
  170.     --12,13, 21,22 tema
Advertisement
Add Comment
Please, Sign In to add comment