2015-07-20 6 views
0

Для отчетности инструмента им здания, которое я хотел бы иметь возможность рассчитывать, сколько «события» произошли в каждой стране, которая была записана до сих пор у меня есть этот запрос:Loop несколько сумм MySQL

SELECT 'country', 
     COUNT(*) AS total, 
     SUM(CASE WHEN `country` = 'USA' THEN 1 ELSE 0 END) AS USCount, 
     SUM(CASE WHEN `country` = 'Canada' THEN 1 ELSE 0 END) AS CanadaCount 
    FROM events WHERE `date` > '2015-06-01' AND `date` < '2015-08-01' 

только проблема в том, что случаи начнут становиться огромными, когда я начну добавлять другие страны в микс. Есть ли способ, которым я могу перебирать страну, чтобы получить все различные подсчеты для каждой страны? Благодарю.

ответ

2

Group это по названию страны, чтобы получить счета страны мудрый

SELECT country, 
    COUNT(*) AS total 
FROM events WHERE `date` > '2015-06-01' AND `date` < '2015-08-01' group by country; 
+0

гораздо проще и работает как шарм, благодаря –

+0

Добро пожаловать Чад Watkins :) –

2

Попробуйте следующий SQL заявление:

Select country, count (*) 
From events 
Group by country 
Смежные вопросы