Advertisement
icatalin

lab 4 bd rezolvat

Jan 13th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.87 KB | None | 0 0
  1. --lab 4
  2. --ex2
  3. SELECT
  4.     MIN(salary) AS "Minim",
  5.     MAX(salary) AS "Maxim",
  6.     SUM(salary) AS "Suma",
  7.     round(AVG(salary)) AS "Media"
  8. FROM
  9.     employees;
  10.    
  11. --ex3
  12. SELECT job_id, MIN(salary), MAX(salary), SUM(salary), avg(salary)
  13. FROM employees
  14. GROUP BY job_id;
  15.  
  16. --ex4
  17. SELECT job_id, COUNT(employee_id)
  18. FROM employees
  19. GROUP BY job_id;
  20.  
  21. --ex5
  22. SELECT COUNT(DISTINCT manager_id) AS "Nr. manageri"
  23. FROM employees;
  24.  
  25. --ex6
  26. SELECT MAX(salary) - MIN(salary) AS "Diferenta"
  27. FROM employees;
  28.  
  29. --ex7
  30. SELECT department_name, city, COUNT(employee_id), avg(salary)
  31. FROM employees emp
  32. JOIN departments dep USING (department_id)
  33. JOIN locations loc USING (location_id)
  34. GROUP BY department_name, city;
  35.  
  36. --ex8
  37. SELECT employee_id, last_name
  38. FROM employees
  39. WHERE salary > (
  40.                 SELECT avg(salary)
  41.                 FROM employees
  42.                 )
  43. ORDER BY salary DESC;
  44.  
  45. --ex9
  46. SELECT manager_id, MIN(salary)
  47. FROM employees
  48. WHERE manager_id IS NOT NULL
  49. GROUP BY manager_id, salary
  50. HAVING MIN(salary) > 1000
  51. ORDER BY 2 DESC;
  52.  
  53. --ex10
  54. SELECT department_id, department_name, MAX(salary)
  55. FROM departments dep JOIN employees emp USING (department_id)
  56. GROUP BY department_id, department_name
  57. HAVING MAX(salary) > 3000;
  58.  
  59. --ex11
  60. SELECT round(avg(MIN(salary)))
  61. FROM employees
  62. GROUP BY job_id;
  63.  
  64.  --ex12
  65.  SELECT department_id, department_name, SUM(salary)
  66.  FROM departments dep JOIN employees emp USING (department_id)
  67.  GROUP BY department_id, department_name;
  68.  
  69.  --ex13
  70.  SELECT round(MAX(avg(salary)))
  71.  FROM employees
  72.  GROUP BY department_id;
  73.  
  74.  --ex14
  75.  SELECT job_id, job_title, avg(salary)
  76.  FROM jobs JOIN employees emp USING (job_id)
  77.  GROUP BY job_id, job_title
  78.  HAVING avg(salary) = (SELECT MIN(avg(salary))
  79.                        FROM employees
  80.                        GROUP BY job_id);
  81.                        
  82. --ex 16
  83. SELECT department_id, job_id, SUM(salary)
  84. FROM employees
  85. GROUP BY department_id, job_id
  86. ORDER BY department_id;
  87.  
  88. --ex 18a
  89. SELECT department_id, department_name, COUNT(employee_id)
  90. FROM departments dep JOIN employees emp USING (department_id)
  91. GROUP BY department_id, department_name
  92. HAVING COUNT(employee_id) < 4;
  93.  
  94. --ex 18b
  95. SELECT department_id, department_name, COUNT(employee_id)
  96. FROM departments dep JOIN employees emp USING (department_id)
  97. GROUP BY department_id, department_name
  98. HAVING COUNT(employee_id) = ( SELECT MAX(COUNT(employee_id))
  99.                                 FROM employees
  100.                                 GROUP BY department_id);
  101.  
  102.  
  103. --ex 20 v2
  104. SELECT COUNT(COUNT(department_id))
  105. FROM employees
  106. GROUP BY department_id
  107. HAVING COUNT(employee_id) > 15;
  108.  
  109. --ex 21
  110. SELECT department_id, SUM(salary)
  111. FROM employees
  112. WHERE department_id != 30
  113. GROUP BY department_id
  114. HAVING COUNT(employee_id) > 10
  115. ORDER BY SUM(salary);
  116.  
  117. --ex 22
  118. SELECT department_id, department_name, COUNT(employee_id), avg(salary), last_name, salary, job_id
  119. FROM departments dep JOIN employees emp USING (department_id)
  120. GROUP BY department_id, department_name;
  121.  
  122. --ex23
  123. SELECT city, department_name, job_id, SUM(salary)
  124. FROM employees emp JOIN departments dep USING (department_id)
  125. JOIN locations loc USING (location_id)
  126. WHERE department_id > 80
  127. GROUP BY department_name, job_id, city;
  128.  
  129. --ex24
  130. SELECT employee_id
  131. FROM job_history
  132. GROUP BY employee_id
  133. HAVING COUNT(employee_id) >= 2;
  134.  
  135. --ex25
  136. SELECT avg(nvl(commission_pct,0))
  137. FROM employees;
  138.  
  139. --ex28
  140. SELECT COUNT(employee_id),
  141.             (SELECT COUNT(employee_id)
  142.             FROM employees
  143.             WHERE to_char(hire_date, 'yyyy') = 1997) AS "1997"
  144.             ,
  145.             (SELECT COUNT(employee_id)
  146.             FROM employees
  147.             WHERE to_char(hire_date, 'yyyy') = 1998) AS "1998"
  148.             ,
  149.             (SELECT COUNT(employee_id)
  150.             FROM employees
  151.             WHERE to_char(hire_date, 'yyyy') = 1999) AS "1999"
  152. FROM employees
  153. GROUP BY 'orice';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement