Мегаобучалка Главная | О нас | Обратная связь


Суммирование значений столбца с помощью функции SUM



2019-12-29 214 Обсуждений (0)
Суммирование значений столбца с помощью функции SUM 0.00 из 5.00 0 оценок




Агрегатная функция 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. Средняя зарплата сотрудников

Задания

  1. Вывести сумму всех возрастов сотрудников, работающих в компании BigFoot.
  2. Как вычислить общее количество лет стажа работы сотрудников в компании BigFoot?
  3. Вычислите сумму зарплат и средний возраст сотрудников, которые занимают должность "программист".
  4. Что делает следующий оператор?

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. Подсчитайте число сотрудников, которые проработали в BigFoot более трех лет.
  2. Подсчитайте количество сотрудников в группах одного возраста.
  3. Измените предыдущее задание так, чтобы возраст выводился в убывающем порядке.
  4. Найдите средний возраст сотрудников в различных подразделениях (должностях).
  5. Измените предыдущий оператор так, чтобы данные выводились в убывающем порядке среднего возраста.

Возможные решения

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. Средний возраст сотрудников по должностям с использованием псевдо-имени столбца

Примечание: Нам нужно задать псевдо-имя для столбца, содержащего среднее значение возраста, чтобы его можно было сортировать.



2019-12-29 214 Обсуждений (0)
Суммирование значений столбца с помощью функции SUM 0.00 из 5.00 0 оценок









Обсуждение в статье: Суммирование значений столбца с помощью функции SUM

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (214)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)