Advertisement
desislava_topuzakova

Untitled

May 22nd, 2023
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.95 KB | None | 0 0
  1. # 1. Records' Count
  2. SELECT COUNT(*) AS `count` FROM `wizzard_deposits`;
  3.  
  4. # 2. Longest Magic Wand
  5. SELECT MAX(`magic_wand_size`) AS 'longest_magic_wand' FROM `wizzard_deposits`;
  6.  
  7. # 3. Longest Magic Wand Per Deposit Groups
  8. SELECT `deposit_group`, MAX(`magic_wand_size`) AS 'longest_magic_wand' FROM `wizzard_deposits`
  9. GROUP BY `deposit_group`
  10. ORDER BY `longest_magic_wand` ASC, `deposit_group` ASC;
  11.  
  12. # 4. Smallest Deposit Group Per Magic Wand Size
  13. SELECT `deposit_group` FROM `wizzard_deposits`
  14. GROUP BY `deposit_group`
  15. ORDER BY AVG(`magic_wand_size`) ASC
  16. LIMIT 1;
  17.  
  18. # 5. Deposits Sum
  19. SELECT `deposit_group`, SUM(`deposit_amount`) AS 'total_sum' FROM `wizzard_deposits`
  20. GROUP BY `deposit_group`
  21. ORDER BY `total_sum` ASC;
  22.  
  23. # 6. Deposits Sum for Ollivander Family
  24. SELECT `deposit_group`, SUM(`deposit_amount`) AS 'total_sum' FROM `wizzard_deposits`
  25. WHERE `magic_wand_creator` = 'Ollivander family'
  26. GROUP BY `deposit_group`
  27. ORDER BY `deposit_group` ASC;
  28.  
  29. # 7. Deposits Filter
  30.  
  31. SELECT `deposit_group`, SUM(`deposit_amount`) AS 'total_sum' FROM `wizzard_deposits`
  32. WHERE `magic_wand_creator` = 'Ollivander family'
  33. GROUP BY `deposit_group`
  34. HAVING `total_sum` < 150000
  35. ORDER BY `total_sum` DESC;
  36.  
  37. # 8. Deposit Charge
  38. SELECT `deposit_group`, `magic_wand_creator`, MIN(`deposit_charge`) AS 'min_deposit_charge' FROM `wizzard_deposits`
  39. GROUP BY `deposit_group`, `magic_wand_creator`
  40. ORDER BY `magic_wand_creator` ASC, `deposit_group` ASC;
  41.  
  42. # 9. Age Groups
  43. SELECT (CASE
  44. WHEN `age` BETWEEN 0 AND 10 THEN '[0-10]'
  45. WHEN `age` BETWEEN 11 AND 20 THEN '[11-20]'
  46. WHEN `age` BETWEEN 21 AND 30 THEN '[21-30]'
  47. WHEN `age` BETWEEN 31 AND 40 THEN '[31-40]'
  48. WHEN `age` BETWEEN 41 AND 50 THEN '[41-50]'
  49. WHEN `age` BETWEEN 51 AND 60 THEN '[51-60]'
  50. WHEN `age` >= 61 THEN '[61+]'
  51. END) AS 'age_group', COUNT(`age`) AS 'wizard_count'
  52. FROM `wizzard_deposits`
  53. GROUP BY `age_group`
  54. ORDER BY `wizard_count` ASC;
  55.  
  56. # 10. First Letter
  57. SELECT LEFT(`first_name`, 1) AS 'first_letter' FROM `wizzard_deposits`
  58. WHERE `deposit_group` = 'Troll Chest'
  59. GROUP BY `first_letter`
  60. ORDER BY `first_letter`;
  61.  
  62. # 11. Average Interest
  63. SELECT `deposit_group`, `is_deposit_expired`, AVG (`deposit_interest`) AS 'average_interest' FROM `wizzard_deposits`
  64. WHERE `deposit_start_date` > '1985-01-01'
  65. GROUP BY `deposit_group`, `is_deposit_expired`
  66. ORDER BY `deposit_group` DESC, `is_deposit_expired` ASC;
  67.  
  68. # 12. Employees Minimum Salaries - начин 1
  69. SELECT `department_id`, MIN(`salary`) AS 'minimum_salary' FROM `employees`
  70. WHERE `hire_date` > '2000-01-01'
  71. GROUP BY `department_id`
  72. HAVING `department_id` IN (2, 5, 7)
  73. ORDER BY `department_id`;
  74.  
  75. # 12. Employees Minimum Salaries - начин 2
  76. SELECT `department_id`, MIN(`salary`) AS 'minimum_salary' FROM `employees`
  77. WHERE `hire_date` > '2000-01-01' AND `department_id` IN (2, 5, 7)
  78. GROUP BY `department_id`
  79. ORDER BY `department_id`;
  80.  
  81. # 13. Employees Average Salaries
  82.  
  83. # 13.1. Select all high paid employees who earn more than 30000 into a new table
  84. CREATE TABLE `salary_more_than_30000` AS
  85. SELECT * FROM `employees`
  86. WHERE `salary` > 30000;
  87.  
  88. # 13.2. Then delete all high paid employees who have manager_id = 42 from the new table
  89. DELETE FROM `salary_more_than_30000`
  90. WHERE `manager_id` = 42;
  91.  
  92. # 13.3. Then increase the salaries of all high paid employees with department_id = 1 with 5000 in the new table.
  93. UPDATE `salary_more_than_30000`
  94. SET `salary` = `salary` + 5000
  95. WHERE `department_id` = 1;
  96.  
  97. # 13.4. select the average salaries in each department from the newtable. Sort result by department_id in increasing order.
  98. SELECT `department_id`, AVG(`salary`) AS 'avg_salary' FROM `salary_more_than_30000`
  99. GROUP BY `department_id`
  100. ORDER BY `department_id` ASC;
  101.  
  102. # 14. Employees Maximum Salaries
  103. SELECT `department_id`, MAX(`salary`) AS 'max_salary' FROM `employees`
  104. GROUP BY `department_id`
  105. HAVING `max_salary` NOT BETWEEN 30000 AND 70000
  106. ORDER BY `department_id`ASC;
  107.  
  108. # 15. Employees Count Salaries
  109. SELECT COUNT(*) AS 'count' FROM `employees`
  110. WHERE `manager_id` IS NULL;
  111.  
  112. # 16. 3rd Highest Salary
  113. SELECT DISTINCT `department_id`, (
  114. # третата най-висока заплата
  115. SELECT DISTINCT `salary` FROM `employees` e1
  116. WHERE e1.`department_id` = `employees`.`department_id`
  117. ORDER BY `salary` DESC
  118. LIMIT 1 OFFSET 2
  119. ) AS 'third_highest_salary'
  120. FROM `employees`
  121. HAVING `third_highest_salary` IS NOT NULL
  122. ORDER BY `department_id`;
  123.  
  124.  
  125. # 17. Salary Challenge
  126. SELECT `first_name`, `last_name`, `department_id` FROM `employees` AS e1
  127. WHERE `salary` > (
  128. SELECT AVG(`salary`) FROM employees AS e2
  129. WHERE e1.department_id = e2.department_id # средната заплата на отдела на служител e1
  130. )
  131. ORDER BY `department_id`, `employee_id`
  132. LIMIT 10;
  133.  
  134.  
  135. # 18. Departments Total Salaries
  136. SELECT `department_id`, SUM(`salary`) AS 'total_salary' FROM `employees`
  137. GROUP BY `department_id`
  138. ORDER BY `department_id`;
  139.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement