I have the following tables available through this link: tables. I’m trying to do a query where I list out the degrees (profession) and the counts associated with that profession. If the degree is listed more than twice, it should output ‘Popular Degree’. I coded:
x
select profession, count(profession_id), count(profession_id) > 2 as Popular
from Profession
where profession_id in
(select profession_id from provider_profession)
group by profession
I get an output of this, which is wrong: My query result
I am not sure how to query the result.
Advertisement
Answer
Try this:
select p.profession,
count(pp.provider_id),
case
when count(pp.provider_id)>2 then 'Popular degree'
else ''
end as DegreePopularity
from profession p inner join provider_profession pp on p.profession_id=pp.profession_id
group by p.profession
I have tried to keep the answer as close to ANSI sql as possible, though only tested it out on a sql server