#mysql #count
#mysql #подсчет
Вопрос:
у меня есть следующий запрос, который я сделал:
SELECT COUNT(*) AS item_count,
reseller_id, count(**WHERE sold=1**) as sold_count
count(**WHERE refunded=1**) as rrefunded
FROM store GROUP BY
reseller_id
продано либо 1, либо 0 и то же самое для возврата.
Я хочу проверить каждого реселлера, сколько они продали и сколько вернули, но я понятия не имею, как это сделать в одном запросе.
Ответ №1:
если это 1 или 0, вы можете выполнить SUM()
SELECT SUM(sold) as sold_count, SUM(refunded) as refund_count FROM store
Комментарии:
1. @TDSii: Вы должны пропустить мой ответ и вместо этого принять этот — я пропустил ту часть вашего сообщения, в которой говорилось
sold is either 1 or 0 and same for refund
, и поэтому мое использование CASE не является необходимым. Я сам ставлю Дмитрию 1. 🙂2. я знаю, но ваш будет полезен в будущем, и я здесь, чтобы изучать новые материалы, но я также пропустил эту sum(), но я изменю best answer по вашему запросу. спасибо за оба!
Ответ №2:
Попробуйте это вместо:
SELECT
reseller_id,
COUNT(*) AS item_count,
sum(case sold when 1 then 1 else 0 end) as sold_count,
sum(case refunded when 1 then 1 else 0 end) as refunded_count
FROM store
GROUP by reseller_id