2017-01-23 2 views
0

を持つの下に複数のカウントを作るのです。私が何をしようとしています何は、どのように私はいくつかのサンプルデータ句

Id name value ref 
1  ab  xy 
2  aba  z 
3  ab  xy 
4  abc  def 
5  gxr  mdy 

はかつて はとても1と行3が選択される行よりも多く登場2つの列を取得することです。

select name, value from table_x 
where value is not null group by name having count(name) >= 2 
and having count(value) >= 2; 

はあなたの構文が間違っています.....

答えて

1

をstuckedです。 group by名前と値を入力し、その後count> = 2をチェックします。

select name, value 
from table_x 
where value is not null 
group by name, value 
having count(*) >= 2; 
3

@ vkpの回答は、複数回表示される個別の名前と値のペアを見つけることが気になる場合にのみ適切です。しかし、基準を満たす個々の行が実際に必要な場合は、これを試してください:

SELECT t1.Name, t1.[Value] 
FROM Table_X t1 
JOIN 
(
    SELECT Name, [Value] 
    FROM Table_X 
    where [Value] IS NOT NULL 
    GROUP BY Name, [Value] 
    HAVING COUNT(1) >= 2 
) t2 ON t1.Name = t2.Name AND t1.[Value] = t2.[Value] 
関連する問題