I have a table like the following, where the primary key is the Name & Age.
| Name | Age | Spirit Animal |
|---|---|---|
| Bob | 18 | Wolf |
| Bob | 49 | Cat |
| Bob | 49 | Dog |
| Jim | 11 | Cat |
| Jim | 22 | Cat |
I want to find all of the names that don't have a spirit animal of Wolf. In this example, Jim should be returned but, not Bob. How would I go about doing this ?
CodePudding user response:
You can use aggregation:
select name
from t
group by name
having sum(case when spirit_animal = 'Wolf' then 1 else 0 end) = 0;
