Есть таблица, одним запросом хочу получить, к примеру, 2 значения - сумма значений value и сумма значений points, но не могу понять, как составить условия для 2х значений одновременно, возможно ли это? Вот например сумма values:
`SELECT SUM(value) AS balance FROM db WHERE id>30 AND value>1000`;
Тоже самое для points
`SELECT SUM(value) AS balance FROM db WHERE xxx=2 OR yyy=3`;
А можно ли как то объединить эти 2 запроса в один?
SELECT SUM(value) AS balance, SUM(point) AS points FROM.... WHERE ??
Всё это при условии, что данные перекликаются и не получится просто соединить эти 2 условия в WHERE
Ответ
Да, можно. Запихните условия where в агрегирующую функцию sum
select id,
sum(if(xxx = 2 or yyy = 3, value, 0)) as balance_1,
sum(if(id > 30 AND value > 1000, value, 0)) as balance_2
from db
group by id
Комментариев нет:
Отправить комментарий