web-dev-qa-db-fra.com

Clause DISTINCT avec WHERE

Comment utiliser la clause DISTINCT avec WHERE? Par exemple:

SELECT * FROM table WHERE DISTINCT email; -- email is a column name

Je souhaite sélectionner toutes les colonnes d'une table avec des adresses électroniques distinctes.

25
Mohit

Si vous voulez parler de toutes les colonnes dont le courrier est unique:

SELECT * FROM table WHERE email in
     (SELECT email FROM table GROUP BY email HAVING COUNT(email)=1);
27
Adam Matan

Peut être par:

SELECT DISTINCT email,id FROM table where id='2';
3
Harry Joy
select t1.*
from YourTable as t1
  inner join
    (select email
     from YourTable
     group by email
     having count(email) = 1 ) as t2
    on t1.email = t2.email   
3
Mikael Eriksson

Vous pouvez utiliser la clause HAVING.

SELECT * 
FROM tab_name
GROUP BY email_id
HAVING COUNT(*) = 1;
2
that1girl.cyborg

Une simple requête le fera: 

SELECT * 
FROM table 
GROUP BY email 
HAVING COUNT(*) = 1;
0
Lu Ji

Si vous avez une colonne unique dans votre table (par exemple, tableid), essayez ceci.

SELECT EMAIL FROM TABLE WHERE TABLEID IN 
(SELECT MAX(TABLEID), EMAIL FROM TABLE GROUP BY EMAIL)
0
AhmedRana

Vous pouvez utiliser ROW_NUMBER (). Vous pouvez également spécifier où sont les conditions. (par exemple, Name LIKE'MyName% dans la requête suivante)

SELECT  *
FROM    (SELECT ID, Name, Email,
            ROW_NUMBER() OVER (PARTITION BY Email ORDER BY ID) AS RowNumber
     FROM   MyTable
     WHERE  Name LIKE 'MyName%') AS a
WHERE   a.RowNumber = 1
0
Kamyar

requête simple cette requête sélectionne tous les enregistrements de la table où l'email est unique:

select distinct email,* from table_name
0
Zahid Tanveer

Cela ne fonctionnerait-il pas:

 SELECT email FROM table1 t1 
          where UNIQUE(SELECT * FROM table1 t2); 
0
caitan correia

SELECT * FROM table GROUP BY email

  • Cela renvoie toutes les lignes avec un email unique pris par la première apparition de l'ID (si cela a du sens)
  • Je suppose que c’est ce que vous cherchiez depuis que j’avais la même question, mais aucune de ces réponses n’a fonctionné pour moi. 
0
Alec Scott