В MySQL имеются встроенные функции для вычисления минимального и максимального значений.
SQL имеет 5 агрегатных функций.
MIN(): минимальное значениеMAX(): максимальное значениеSUM(): сумма значенийAVG(): среднее значенийCOUNT(): подсчитывает число записейВ этом параграфе мы рассмотрим поиск минимального и максимального значений столбца.
select MIN(salary) from employee_data;
На рис. 7.1. приведен результат запроса.
(рис 7.1) Поиск минимальной зарплаты
select MAX(salary) from employee_data;
На рис. 7.2. приведен результат запроса.
(рис 7.2) Поиск максимальной зарплаты
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) Имя и фамилия самого старого сотрудникаАгрегатная функция SUM()
Давайте посмотрим, сколько компания BigFoot тратит на зарплату своих сотрудников.
select SUM(salary) from employee_data;
На рис. 7.7. приведен результат запроса.
(рис 7.7) Сумма всех зарплатАналогично можно вывести общую сумму надбавок, выдаваемых сотрудникам.
select SUM(perks) from employee_data;
На рис. 7.8. приведен результат запроса.
(рис 7.8) Сумма всех надбавокМожно найти также общую сумму зарплаты и надбавок.
select sum(salary) + sum(perks) from employee_data;
На рис. 7.9. приведен результат запроса.
(рис 7.9) Общая сумма зарплаты и надбавокЗдесь показаны также дополнительные возможности команды SELECT. Значения можно складывать, вычитать, умножать или делить. В действительности можно записывать полноценные арифметические выражения.
Агрегатная функция AVG() используется для вычисления среднего значения данных в столбце.
select avg(age) from employee_data;
На рис. 7.10. приведен результат запроса.
(рис 7.10) Средний возраст сотрудниковПример выше вычисляет средний возраст сотрудников компании BigFoot, а следующий выводит среднюю зарплату.
select avg(salary) from employee_data;
На рис. 7.11. приведен результат запроса.
(рис 7.11) Средняя зарплата сотрудников
select (SUM(perks)/SUM(salary) * 100) from employee_data;
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) Процент зарплаты, который сотрудники получают в качестве надбавокMySQL позволяет задавать имена для выводимых столбцов. Поэтому вместо f_name или l_name и т.д. можно использовать более понятные и наглядные термины. Это делается с помощью оператора AS.
select avg(salary) AS 'Средняя зарплата' from employee_data;
На рис. 7.16. приведен результат запроса.
(рис 7.16) Вывод средней зарплаты с использованием псевдо-имен столбцов.Такие псевдо-имена могут сделать вывод более понятным для пользователей. Важно только помнить, что при задании псевдо-имен с пробелами необходимо заключать такие имена в кавычки. Вот еще один пример:
select (SUM(perks)/SUM(salary) * 100) AS 'Процент надбавок' from employee_data;
На рис. 7.17. приведен результат запроса.
(рис 7.17) Вывод процента зарплаты, которую сотрудники получают в качестве надбавок с использованием псевдо-именАгрегатная функция COUNT() подсчитывает и выводит общее число записей. Например, чтобы подсчитать общее число записей в таблице, выполните следующую команду.
select COUNT(*) from employee_data;
На рис. 7.18. приведен результат запроса.
(рис 7.18) Общее количество записейКак мы уже знаем, знак * означает "все данные".
Теперь давайте подсчитаем общее число сотрудников, которые занимают должность "программист".
select COUNT(*) from employee_data where title = 'программист';
На рис. 7.19. приведен результат запроса.
(рис 7.19) Общее количество сотрудников-программистовПредложение GROUP BY позволяет группировать аналогичные данные. Поэтому, чтобы вывести все уникальные должности в таблице, можно выполнить команду
select title from employee_data GROUP BY title;
На рис. 7.20. приведен результат запроса.
(рис 7.20) Все уникальные должности сотрудниковМожно видеть, что это аналогично использованию DISTINCT в предыдущей лекции.
Вот как можно подсчитать число сотрудников имеющих определенную должность.
select title, count(*) from employee_data GROUP BY title;
На рис. 7.21. приведен результат запроса.
(рис 7.21) Количество сотрудников по должностямВ предыдущей команде MySQL сначала создает группы различных должностей, а затем выполняет подсчет в каждой группе.
Теперь давайте найдем и выведем число сотрудников, имеющих различные должности, и отсортируем их с помощью ORDER BY.
select title, count(*) AS Number from employee_data GROUP BY title ORDER BY Number;
На рис. 7.22. приведен результат запроса.
(рис 7.22) Количество сотрудников по должностям с сортировкой1. mysql> select count(*) from employee_data
-> where yos > 3;
На рис. 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) Средний возраст сотрудников по должностям с использованием псевдо-имени столбцаПримечание: Нам нужно задать псевдо-имя для столбца, содержащего среднее значение возраста, чтобы его можно было сортировать.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.