Advertisement
desislava_topuzakova

Data Aggregation - Exercise

Sep 26th, 2022
1,871
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.13 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'
  9. FROM `wizzard_deposits`
  10. GROUP BY `deposit_group`
  11. ORDER BY `longest_magic_wand`, `deposit_group`;
  12.  
  13. # 4. Smallest Deposit Group per Magic Wand Size
  14. SELECT `deposit_group`
  15. FROM `wizzard_deposits`
  16. GROUP BY `deposit_group`
  17. ORDER BY avg(`magic_wand_size`)
  18. LIMIT 1;
  19.  
  20. # 5. Deposits Sum
  21. SELECT `deposit_group`, SUM(`deposit_amount`) AS 'total_sum'
  22. FROM `wizzard_deposits`
  23. GROUP BY `deposit_group`
  24. ORDER BY `total_sum`;
  25.  
  26. # 6. Deposits Sum for Ollivander Family
  27. SELECT `deposit_group`, SUM(`deposit_amount`) AS 'total_sum'
  28. FROM `wizzard_deposits`
  29. WHERE `magic_wand_creator` = 'Ollivander family'
  30. GROUP BY `deposit_group`
  31. ORDER BY `deposit_group`;
  32.  
  33. # 7. Deposits Filter
  34. SELECT `deposit_group`, SUM(`deposit_amount`) AS 'total_sum'
  35. FROM `wizzard_deposits`
  36. WHERE `magic_wand_creator` = 'Ollivander family'
  37. GROUP BY `deposit_group`
  38. HAVING `total_sum` < 150000
  39. ORDER BY `total_sum` DESC;
  40.  
  41. # 8. Deposit Charge
  42. SELECT `deposit_group`, `magic_wand_creator`, MIN(`deposit_charge`) AS 'min_deposit_charge'
  43. FROM `wizzard_deposits`
  44. GROUP BY `deposit_group`, `magic_wand_creator`
  45. ORDER BY `magic_wand_creator`, `deposit_group`;
  46.  
  47. # 9. Age Groups
  48. SELECT (CASE
  49.         WHEN `age` BETWEEN 0 AND 10 THEN '[0-10]'
  50.         WHEN `age` BETWEEN 11 AND 20 THEN '[11-20]'
  51.         WHEN `age` BETWEEN 21 AND 30 THEN '[21-30]'
  52.         WHEN `age` BETWEEN 31 AND 40 THEN '[31-40]'
  53.         WHEN `age` BETWEEN 41 AND 50 THEN '[41-50]'
  54.         WHEN `age` BETWEEN 51 AND 60 THEN '[51-60]'
  55.         WHEN `age` >= 61 THEN '[61+]'
  56.     END) AS `age_group`, COUNT(age) AS `wizard_count` FROM `wizzard_deposits`
  57.     GROUP BY `age_group`
  58.     ORDER BY `age_group`;
  59.    
  60. # 10. First Letter
  61. SELECT LEFT(`first_name`, 1) AS 'first_letter'
  62. FROM `wizzard_deposits`
  63. WHERE `deposit_group` = 'Troll Chest'
  64. GROUP BY `first_letter`
  65. ORDER BY `first_letter`;
  66.  
  67. # 11. Average Interest
  68. SELECT `deposit_group`, `is_deposit_expired`, avg(`deposit_interest`) AS `average_interest`
  69. FROM `wizzard_deposits`
  70. WHERE `deposit_start_date` > '1985-01-01'
  71. GROUP BY `deposit_group`, `is_deposit_expired`
  72. ORDER BY `deposit_group` DESC, `is_deposit_expired`;
  73.  
  74. # 12. Employees Minimum Salaries
  75. SELECT `department_id`, min(`salary`) AS 'minimum_salary'
  76. FROM `employees`
  77. WHERE `hire_date` > '2000-01-01'
  78. GROUP BY `department_id`
  79. HAVING `department_id` IN (2, 5, 7)
  80. ORDER BY `department_id`;
  81.  
  82. # 13. Employees Average Salaries
  83. CREATE TABLE `salary_more_than` AS
  84. SELECT *
  85. FROM `employees`
  86. WHERE `salary` > 30000;
  87.  
  88. DELETE
  89. FROM `salary_more_than`
  90. WHERE `manager_id` = 42;
  91.  
  92. UPDATE `salary_more_than`
  93. SET `salary` = `salary` + 5000
  94. WHERE `department_id` = 1;
  95.  
  96. SELECT `department_id`, avg(`salary`) AS `avg_salary`
  97. FROM `salary_more_than`
  98. GROUP BY `department_id`
  99. ORDER BY `department_id`;
  100.  
  101. # 14. Employees Maximum Salaries
  102. SELECT `department_id`, max(`salary`) AS `max_salary`
  103. FROM `employees`
  104. GROUP BY `department_id`
  105. HAVING `max_salary` NOT BETWEEN 30000 AND 70000
  106. ORDER BY `department_id`;
  107.  
  108. # 15. Employees Count Salaries
  109. SELECT COUNT(`employee_id`) AS 'count'
  110. FROM `employees`
  111. WHERE `manager_id` IS NULL;
  112.  
  113. # 16. 3rd Highest Salary
  114. SELECT DISTINCT `department_id`,
  115.         (
  116.         SELECT  DISTINCT `salary`
  117.         FROM    `employees` e
  118.         WHERE   e.`department_id` = `employees`.`department_id`
  119.         ORDER BY `salary` DESC
  120.         LIMIT 1 OFFSET 2
  121.         ) AS `third_highest_salary`
  122. FROM    `employees`
  123. HAVING `third_highest_salary` IS NOT NULL
  124. ORDER BY `department_id`;
  125.  
  126. # 17. Salary Challenge
  127. SELECT `first_name`, `last_name`, `department_id`
  128. FROM `employees` f
  129. WHERE `salary` > (
  130.     SELECT avg(`salary`)
  131.     FROM `employees` e
  132.     WHERE e.department_id = f.department_id
  133.     )
  134. ORDER BY `department_id`, `employee_id`
  135. LIMIT 10;
  136.  
  137. # 18. Departments Total Salaries
  138. SELECT `department_id`, SUM(`salary`) AS `total_salary`
  139. FROM `employees`
  140. GROUP BY `department_id`
  141. ORDER BY `department_id`;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement