Возможные решения
1. mysql> select MIN(perks) from employee_data;
На рис. 7.3. приведен результат запроса.
Рис. 7.3. Минимальные надбавки
2.
mysql> select MAX(salary) from employee_data -> where title = "программист";
На рис. 7.4. приведен результат запроса.
Рис. 7.4. Максимальная зарплата среди программистов
3. mysql> select MAX(age) from employee_data -> where title = 'продавец';
На рис. 7.5. приведен результат запроса.
Рис. 7.5. Возраст самого старого продавца
4. Вот один из способов сделать без использования агрегатных функций.
mysql> select f_name, l_name, age -> from employee_data -> order by age DESC limit 1;
На рис. 7.6. приведен результат запроса.
Рис. 7.6. Имя и фамилия самого старого сотрудника
1. mysql> select SUM(age) from employee_data;
На рис. 7.12. приведен результат запроса.
Рис. 7.12. Сумма всех возрастов сотрудников
2. mysql> select SUM(yos) from employee_data;
На рис. 7.13. приведен результат запроса.
Рис. 7.13. Общее количество лет стажа работы сотрудников
3. mysql> select SUM(salary), AVG(age) -> from employee_data where -> title = 'программист';
На рис. 7.14. приведен результат запроса.
Рис. 7.14. Сумма зарплат и средний возраст программистов
4. Этот оператор выводит процент зарплаты, которую сотрудники BigFoot получают в качестве надбавок.
mysql> select (SUM(perks)/SUM(salary) * 100) -> from employee_data;
На рис. 7.15. приведен результат запроса.
Рис. 7.15. Процент зарплаты, которую сотрудники получают в качестве надбавок
1. mysql> select count(*) from employee_data -> where yos >= 4;
На рис. 7.23. приведен результат запроса.
Рис. 7.23. Число сотрудников, которые проработали более трех лет
2. mysql> select age, count(*) -> from employee_data -> GROUP BY age;
На рис. 7.24. приведен результат запроса.
Рис. 7.24. Количество сотрудников в группах одного возраста
3. mysql> select age, count(*) -> from employee_data -> GROUP BY age -> ORDER by age DESC;
На рис. 7.25. приведен результат запроса.
Рис. 7.25. Количество сотрудников в группах одного возраста с обратной сортировкой
4. mysql> select title, AVG(age) -> from employee_data -> GROUP BY title;
На рис. 7.26. приведен результат запроса.
Рис. 7.26. Средний возраст сотрудников по должностям
5. mysql> select title, AVG(age) -> AS 'средний возраст' -> from employee_data -> GROUP BY title -> ORDER BY 'средний возраст' DESC;
На рис. 7.27. приведен результат запроса.
Рис. 7.27. Средний возраст сотрудников по должностям с использованием псевдо-имени столбца
Примечание: Нам нужно задать псевдо-имя для столбца, содержащего среднее значение возраста, чтобы его можно было сортировать.
1. mysql> select MIN(perks) from employee_data;
На рис. 7.3. приведен результат запроса.
Рис. 7.3. Минимальные надбавки
2.
mysql> select MAX(salary) from employee_data -> where title = "программист";
На рис. 7.4. приведен результат запроса.
Рис. 7.4. Максимальная зарплата среди программистов
3. mysql> select MAX(age) from employee_data -> where title = 'продавец';
На рис. 7.5. приведен результат запроса.
Рис. 7.5. Возраст самого старого продавца
4. Вот один из способов сделать без использования агрегатных функций.
mysql> select f_name, l_name, age -> from employee_data -> order by age DESC limit 1;
На рис. 7.6. приведен результат запроса.
Рис. 7.6. Имя и фамилия самого старого сотрудника
1. mysql> select SUM(age) from employee_data;
На рис. 7.12. приведен результат запроса.
Рис. 7.12. Сумма всех возрастов сотрудников
2. mysql> select SUM(yos) from employee_data;
На рис. 7.13. приведен результат запроса.
Рис. 7.13. Общее количество лет стажа работы сотрудников
3. mysql> select SUM(salary), AVG(age) -> from employee_data where -> title = 'программист';
На рис. 7.14. приведен результат запроса.
Рис. 7.14. Сумма зарплат и средний возраст программистов
4. Этот оператор выводит процент зарплаты, которую сотрудники BigFoot получают в качестве надбавок.
mysql> select (SUM(perks)/SUM(salary) * 100) -> from employee_data;
На рис. 7.15. приведен результат запроса.
Рис. 7.15. Процент зарплаты, которую сотрудники получают в качестве надбавок
1. mysql> select count(*) from employee_data -> where yos >= 4;
На рис. 7.23. приведен результат запроса.
Рис. 7.23. Число сотрудников, которые проработали более трех лет
2. mysql> select age, count(*) -> from employee_data -> GROUP BY age;
На рис. 7.24. приведен результат запроса.
Рис. 7.24. Количество сотрудников в группах одного возраста
3. mysql> select age, count(*) -> from employee_data -> GROUP BY age -> ORDER by age DESC;
На рис. 7.25. приведен результат запроса.
Рис. 7.25. Количество сотрудников в группах одного возраста с обратной сортировкой
4. mysql> select title, AVG(age) -> from employee_data -> GROUP BY title;
На рис. 7.26. приведен результат запроса.
Рис. 7.26. Средний возраст сотрудников по должностям
5. mysql> select title, AVG(age) -> AS 'средний возраст' -> from employee_data -> GROUP BY title -> ORDER BY 'средний возраст' DESC;
На рис. 7.27. приведен результат запроса.
Рис. 7.27. Средний возраст сотрудников по должностям с использованием псевдо-имени столбца
Примечание: Нам нужно задать псевдо-имя для столбца, содержащего среднее значение возраста, чтобы его можно было сортировать.
© 2003-2007 INTUIT.ru. Все права защищены.