Очень часто бывает необходимость подсчитать сумму в таблице 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 |
И нам нужно подсчитать общее количество денег у всех пользователей.Это делается так:
select sum(money) as `total_money` from `users`
В итоге мы получаем одну строку состоящую из одной ячейки с именем total_money,которое мы указали в качестве псевдонима(указать можете любое).
Тот же самый запрос на DataBase API Drupal 7 будет выглядеть так:
$q->db_select('users','u'); $q->addExpression('SUM(u.money)','total_money'); $q->execute();
Эта форма записи более громоздка,но на деле гораздо удобнее.
Почитать об этом API и посмотреть более сложные примеры можно тут
Если в запросе нужно поставить условие-используем оператор where. Например посчитать общую сумму денег, только у пользователей, чей баланс более 20.
select sum(money) as `total_money` from `users` where `money`>20
И соответственно на Drupal
$q->db_select('users','u'); $q->addExpression('SUM(u.money)','total_money'); $q->condition('u.money',20,'>'); $q->execute();
Вот впринципе и всё. Если возникли вопросы-пишите в комментариях, дополню статью.