web-dev-qa-db-ja.com

WHEREを含むDISTINCT句

WHEREでDISTINCT句を使用するにはどうすればよいですか?例えば:

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

個別のメールアドレスを持つテーブルからすべての列を選択したい。

26
Mohit

メールが一意であるすべての列を意味する場合:

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

によって可能性があります:

SELECT DISTINCT email,id FROM table where id='2';
4
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

HAVING句を使用できます。

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

1つの簡単なクエリで実行できます。

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

SELECT DISTINCT dbo.Table.Email、dbo.Table.FirstName dbo.Table.LastName、dbo.Table.DateOfBirth(etc)FROM dbo.Table.Contacts WHERE Email = 'name @ email';

0
Ivan

テーブルに一意の列(tableidなど)がある場合は、これを試してください。

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

ROW_NUMBER()を使用できます。どこでも条件を指定できます。 (例:Name LIKE'MyName%次のクエリで)

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

単純なクエリこのクエリは、電子メールが一意であるテーブルからすべてのレコードを選択します。

select distinct email,* from table_name
0
Zahid Tanveer

これはうまくいかないでしょう:

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

試してください:

SELECT * FROM table GROUP BY email

  • これは、最初のIDの出現で取得された一意の電子メールを持つすべての行を返します(それが理にかなっている場合)
  • 私は同じ質問について持っていたので、これはあなたが探していたものだと思いますが、これらの答えのどれも私にとってはうまくいきませんでした。
0
Alec Scott