Подсчёт суммы в MySql

Опубликовано 2011.11.18

Очень часто бывает необходимость подсчитать сумму в таблице mysql. Если быть точнее-сумму значений в определённых ячейках таблицы.

Это делается с помощью оператора SUM. Этому оператору передается имя поля в качестве аргумента.

Например имеем таблицу users пользователей, с указанием id, name, dateregister и money.

id name dateregister money
1 Вася 1312700694 125
2 Саша 1314555798 47
3 Коля 1316071029 36
4 Пётр 1318137334 8
5 Агафон 1320819968 15

И нам нужно подсчитать общее количество денег у всех пользователей.Это делается так:

  1. select sum(money) as `total_money` from `users`

В итоге мы получаем одну строку состоящую из одной ячейки с именем total_money,которое мы указали в качестве псевдонима(указать можете любое).

Тот же самый запрос на DataBase API Drupal 7 будет выглядеть так:

  1. $q->db_select('users','u');
  2. $q->addExpression('SUM(u.money)','total_money');
  3. $q->execute();

Эта форма записи более громоздка,но на деле гораздо удобнее.

Почитать об этом API и посмотреть более сложные примеры можно тут

Если в запросе нужно поставить условие-используем оператор where. Например посчитать общую сумму денег, только у пользователей, чей баланс более 20.

  1. select sum(money) as `total_money` from `users` where `money`>20

И соответственно на Drupal

  1. $q->db_select('users','u');
  2. $q->addExpression('SUM(u.money)','total_money');
  3. $q->condition('u.money',20,'>');
  4. $q->execute();

Вот впринципе и всё. Если возникли вопросы-пишите в комментариях, дополню статью.