mysql множественный подсчет с WHERE

#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