Мне нужно составить следующее представление «Статистика по жанрам»: жанр – количество фильмов, снятых в России – количество фильмов, снятых в других странах. Имеется таблица фильмов:
Я хочу получить представление с тремя столбцами: жанр, кол-во российских фильмов, кол-во иностранных фильмов. Как составить представление только с количеством российских фильмов по жанрам я понимаю:
create view statistics
as select films.ganre, count(*) Russian_films
from films
where country = 'Russia'
group by ganre;
Получаю такое представление:
Я не понимаю, как добавить второй count(*) для подсчета иностранных фильмов.(Как я понимаю, не требуется подсчитывать отдельно для каждой другой страны, а нужно количество иностранных фильмов по жанрам в совокупности.) Подскажите, пожалуйста, как это сделать. Спасибо.
SELECT ganre, SUM(IF(country = 'Russia', 1, 0)) as `Russian`,
SUM(IF(country <> 'Russia', 1, 0)) as `nonRussian`
FROM films
WHERE IFNULL(country, '')<>''
GROUP BY ganre;
WHERE добавлено для игнора фильмов, в которых страна не указана.
Можно было еще так сделать, используя UNION ALL:
create view stat
as select films.ganre
from films
union all
select count(*) Russian_films
from films
where country = 'Russia'
group by ganre
union all
select count(*) Foreign_films
from films
where country != 'Russia'
group by ganre;
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости