2012-03-24 9 views
-1

2つ以上のrwosの一致ルールがある場合にのみアイテムをグループ化します。これはどうすればできますか?類似した行が2つ以上ある場合のみグループ化しますか?

例えば:(Colによってグルーピング)

Col 
---- 
A 
A 
B 
B 
B 

返すべきである。

Col | count(*) 
--------------- 
A  2 
A  2 
B  3 

を3件の以上の結果があるので、それは一度だけBを表示します。

+1

なぜAが2回、Bが1回しか出現しなかったのですか? – ajreal

+0

@ajreal質問を読んだことがありますか? _ "ルールが一致するアイテムが2つ以上ある場合にのみアイテムをグループ化します。" _ –

+0

何も試していません。私は自己結合と別のクエリでそれを行う方法を知っていますが、クエリが長くなりすぎて、すでに他のものに入れ子になっています – lisovaccaro

答えて

2

あなたはカウントがあるときのカウントを取得するためにインライン・ビューを必要とするからMySQLにはCOUNTを持っていないので、あまり3.その後、その後、通常のカウントクエリ

SELECT counts.col, 
     counts.k 
FROM test 
     INNER JOIN (SELECT col, 
          COUNT(col) k 
        FROM test 
        GROUP BY col 
        having count(col) < 3) counts 
     ON test.col = counts.col 

UNION ALL 
SELECT col, 
     COUNT(col) k 
FROM test 
GROUP BY col 
HAVING COUNT(col) > 2 

See it working here

にそのわずか組合
関連する問題