2015-03-25 1 views
0

J'utilise SQL et je n'arrive pas à trouver la bonne syntaxe pour exécuter une requête spécifique, j'essaie d'examiner une grande quantité de données, c'est pourquoi je dois m'assurer que je reçois cette requête. à droite.SQL Query COUNT (Distinct

Ma table ressemble au-dessous.

tableau 1

Column 1 . Column 2 
1234  . A 
1245  . B 
1234  . A 
1256  . C 
1234  . A 

Je veux être en mesure d'écrire une requête simple qui ne me donne que ceux de la colonne 1 qui apparaissent plus de deux fois, mais toujours avoir leurs mêmes valeurs plutôt que de les remplacer par un nombre différent variera mais c'est le plus facile).

Je pensais à l'aide d'un comte (Distinct mais je ne l'ai pas été en mesure de le faire fonctionner. Des idées?

+0

alors qu'avez-vous essayé? – jfun

+1

Quels sont les résultats attendus pour cet exemple de données –

+0

nous en dire un peu plus sur la base de données que vous utilisez, mysql, mssql, oracle, mongodb. – gaby

Répondre

0

Je ne suis pas sûr de ce que « ont toujours leurs mêmes valeurs plutôt que de le remplacer par un nombre différent » signifie, mais peut-être ce SQL est ce dont vous avez besoin:

select * 
from Table1 
where Column1 in (
    select Column1 
    from Table1 
    group by Column1 
    having count(*) > 2 
); 

ici, il travaille dans un violon: http://sqlfiddle.com/#!6/4b443/1

0

cela fonctionnera pour vous

select column1, column2 from table where column1 in (select column1 
        from table1 
        group by column1 
        having count(column1) >=2) 
0

Si je comprends bien:

select column1 
from table t 
group by column 1 
having count(*) > 2 and 
     min(column2) = max(column2); 

Cette obtient des valeurs de column1 qui apparaissent plus de deux fois, mais où toutes les lignes ont la même valeur pour column2.