2011-07-18 10 views
2

私はSQLにかなり新たなんだ、と私はこのような何かをやろうとしている:複数の項目を含むクエリでグループを選択するにはどうすればよいですか?

私が提出それは2列でFoo呼ばれています:FooId(主キー)とBarId(null非許容その中に重複した値を持つことができる外部キー)。

Fooに一度しか表示されないBarIdを返すクエリを作成したいとします。また、Fooに複数回表示されるBarIdを返す別のクエリを書きたいと思っています。各BarIdの出現回数を返します

SELECT 
    BarId, 
    COUNT(BarId) AS "BarCount" 
    FROM [Database].[dbo].[Foo] 
    GROUP BY BarId 

は、私はこのような何かを始めています。しかし、すぐに、私はWHERE句を追加しようとして、私は構文エラーを取得:

SELECT 
    BarId, 
    COUNT(BarId) AS "BarCount" 
    FROM [Database].[dbo].[Foo] 
    GROUP BY BarId 
    WHERE "BarCount" > 1 

私は、これは私が非常によく、SQLを理解していないことで作っていますいくつかの愚かな間違いであると確信しています。私は間違って何をしていますか?骨材と一緒に使用する場合

答えて

5

、あなたの代わりにWHERE句のHAVING句を使用する必要があります。

SELECT 
    BarId, 
    COUNT(BarId) AS "BarCount" 
    FROM [Database].[dbo].[Foo] 
    GROUP BY BarId 
    HAVING COUNT(BarID) > 1 
+0

Ahこれで解決しました。ありがとう! –

+0

@matthew - 幸せに助けてください – JNK

0

あなたがHAVING句を使用する必要があります。集計関数の場合はWHEREのようです。 This overview.

関連する問題