sql - 或者使用 Group By 条件

标签 sql database ms-access

我有两张 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;

这是我得到的:

enter image description here

最佳答案

每当发现熊时将 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/

相关文章:

database - 本地DB抛出字节数组截断到长度为8000异常

c# - OleDb 异常

java - Hsqldb异常 : user lacks privilege or object not found: TABLE

.net - 其他 PC 无法识别的数据库格式

sql - 需要在 SQL Server 2012 中自动递增字符串

php - WordPress中文本小部件的内容存储在哪里?

可以从sql生成图表的Java库

c++ - 事务性、内存中、对象/键/值存储库?

SQL排序算法

sql - 多对多自引用选择sql查询