Я создал функцию, которая поворачивает мою текущую таблицу, чтобы я мог видеть, кому из моих учеников нравится какой вид спорта.Я использую oracle db.Так что теперь каждый вид спорта находится в отдельной колонке после разворота.Он помечается как 1, если студент занимается этим конкретным видом спорта.
Year Student Basketball Baseball Golf Soccer
2019 Michael 1 NA 1 NA
2018 Jason NA NA 1 NA
2017 Sarah 1 1 1 NA
2016 Michelle NA NA NA NA
Я хочу подсчитать количество столбцов, чтобы узнать, сколько учеников отметили соответствующий вид спорта.
select
SUM(CASE WHEN Basketball=1 THEN 1 ELSE 0 END) as NBA,
SUM(CASE WHEN Baseball=1 THEN 1 ELSE 0 END) as MLB,
SUM(CASE WHEN Golf=1 THEN 1 ELSE 0 END) as PGA,
SUM(CASE WHEN Soccer=1 THEN 1 ELSE 0 END) as MLS
from students_sports
group by year
order by 1;
Я пробовал синтаксис выше, но не повезло.Я также попробовал следующий синтаксис:
select
sum(nvl("Basketball", 0)) as NBA,
sum(nvl("Baseball", 0)) as MLB,
etc....
Когда я запускаю этот запрос, я получаю общее количество строк, а не фактическое количество строк, помеченных как 1. Есть мысли?