1

オブザーバーと動物のテーブルが 2 つあります。

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;

これは私が得るものです:

ここに画像の説明を入力

4

3 に答える 3

1

WHERE句である必要があります

SELECT fields
FROM tables
WHERE COUNT(a.observer_id) > 4
OR a.observer_id = bear_id
于 2012-11-30T19:09:45.903 に答える
1

クマが発見されるたびにブール値を 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
于 2012-11-30T19:26:54.343 に答える
0

orステートメントを having 句に追加するだけです

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 OR a.observer_id = 'bear';
于 2012-11-30T19:17:05.340 に答える