我有两张 table ,一张是观察者,另一张是动物。
我想知道看到超过 5 只动物或看到熊的观察者的名字。
我能够获得超过 4 只动物的观察者,但不确定如何进行 OR 语句。
这是我的代码:
SELECT o.last_name, o.first_name, a.observer_id, count (a.observer_id) as Animals_Seen
from animals as a inner join observer as o
on a.observer_id = o.observer_id
group by a.observer_id, o.last_name, o.first_name
having count (a.observer_id) > 4;
这是我得到的:
最佳答案
每当发现熊时将 bool 值设置为 1...然后检查观察者的熊数是否 > 0:
select
o.last_name, o.first_name, a.observer_id, count(a.observer_id) as Animals_Seen,
sum(iif(a.animal = "bear", 1, 0)) as BearCount
from
animals as a inner join observer as o
on
a.observer_id = o.observer_id
group by
a.observer_id, o.last_name, o.first_name
having
count(a.observer_id) > 4 or sum(iif(a.animal = "bear", 1, 0)) > 0
关于sql - 或者使用 Group By 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13651508/