Как считать результаты в результатах в MySQL? - PullRequest
2 голосов
/ 14 октября 2010

У меня есть таблица предметов, которую я получаю из нескольких разных интернет-магазинов, таких как Ebay / Amazon и т. Д. До сегодняшнего дня я хотел просто сгруппировать каждый товар по году его изготовления и производителю, который сделал это.

Итак, результаты будут выглядеть примерно так

total  year  manufacturer
100    1999  man_a
32     2002  man_b

Теперь я хочу сузить список тем, из какого магазина поступает каждый предмет. В общем, я хочу знать, сколько предметов было сделано за определенный год и определенным производителем, а также сколько было найдено на ebay, amazon и т. Д. Результаты должны выглядеть примерно так (по крайней мере, предоставить то же самое данные)

total  year  manufacturer  ebay_count  amazon_count
100    1999  man_a         40          60
32     2002  man_b         21          11

Могу ли я сделать что-то подобное, и если да, то как?

Вот запрос, который я использовал для группировки года и производителя, если это необходимо.

SELECT `year`, `manufacturer`, COUNT(id) AS `total` FROM `items` GROUP BY `manufacturer`, `year` ORDER BY `total` DESC LIMIT 10;

спасибо

1 Ответ

5 голосов
/ 14 октября 2010

Использование:

  SELECT `year`, 
         `manufacturer`, 
         COUNT(id) AS `total`,
         SUM(CASE WHEN store = 'ebay' THEN 1 ELSE 0 END) AS ebay_count,
         SUM(CASE WHEN store = 'amazon' THEN 1 ELSE 0 END) AS amazon_count
    FROM `items` 
GROUP BY `manufacturer`, `year` 
ORDER BY `total` DESC 
   LIMIT 10;
...