各IDが特定の表に何回出現するかを次のように数えようとしています。カウントを使用すると、0が存在するはずのタプルが1として出力されますか?
Members
ID | NAME
1 | Bob
2 | John
3 | Sally
4 | Hannah
Department
ID | DEPT
1 | Math
1 | English
3 | Math
4 | Math
4 | English
4 | Science
私は次のようにテーブルを表示したいと思います:私はこの私の最も最近の一つであるにいくつかの試みがなされてきた
ID | Name | Count(Dept)
1 | Bob | 2
2 | John | 0
3 | Sally | 1
4 | Hannah | 3
:
select owner
from table
where (select count(distinct letter) from table group by owner) in
(select max(count(distinct letter)) from table group by owner);
私はどのように見えることはできません0の結果が正しく表示されるようにします。正直なところ、私は基本的に自然な結合をしたくないときに、使い方についてちょっと混乱しています。
編集:私が質問しようとしていることを正しく示すために質問を編集しました。混乱を招いて申し訳ありません。
'自然join'を使用しないでください。それは、宣言された外部キー制約ではなく、同じ名前を持つ列を使用します。 –
@GordonLinoff代わりに何を使用すべきですか?私は自然結合がやや疑わしいと知っていましたが、そうでなければ私の質問を得ることができませんでした。 –
。 。 'ON'または' USING'です。 –