2

{id,username,firstname,lastname} を含む Customers のデータベース テーブルがあるとします。

異なる名前のインスタンスがいくつあるかを知りたい場合は、次のようにします。

select firstname,count(*) from Customers group by 2 order by 1;

   username | count(*)
   ===================
   bob      |   1
   jeff     |   2
   adam     |   5

複数回出現する名前のみを返すように同じクエリを作成するにはどうすればよいですか? つまり、上記の例では、jeff と adam の行のみが返されます。

4

3 に答える 3

10

having次のように句が必要です。

select 
    firstname,
    count(*) 
from Customers 
group by firstname
having count(*) > 1
order by 1
于 2009-07-31T14:58:10.117 に答える
4

group by 2 order by 1ひどいです、私は言うべきです。サポートされている場合は、適切な列名を使用してください。これにより、読みやすさが大幅に向上します。

それを念頭に置いて、

select firstname, count(*) c 
from Customers 
group by firstname  
having count(*) > 1 -- Kudos to Shannon
order by c;
于 2009-07-31T14:59:46.493 に答える
2

それが HAVING 句の機能です。これが Informix で機能するかどうかはわかりませんが、試してみてください。

select firstname, count(*) 
from Customers 
group by firstname
HAVING COUNT(*) > 1
于 2009-07-31T14:58:18.790 に答える