DISTINCT предложение с WHERE - PullRequest
       6

DISTINCT предложение с WHERE

26 голосов
/ 10 апреля 2011

Как я могу использовать предложение DISTINCT с WHERE? Например:

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

Я хочу выбрать все столбцы из таблицы с разными адресами электронной почты.

Ответы [ 12 ]

28 голосов
/ 10 апреля 2011

Если вы имеете в виду все столбцы, чей электронный адрес уникален:

SELECT * FROM table WHERE email in
     (SELECT email FROM table GROUP BY email HAVING COUNT(email)=1);
3 голосов
/ 10 апреля 2011
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 голосов
/ 10 апреля 2011

Может быть по:

SELECT DISTINCT email,id FROM table where id='2';
2 голосов
/ 02 августа 2017

Вы можете использовать предложение HAVING.

SELECT * 
FROM tab_name
GROUP BY email_id
HAVING COUNT(*) = 1;
0 голосов
/ 14 июня 2019

ВЫБЕРИТЕ DISTINCT dbo.Table.Email, dbo.Table.FirstName dbo.Table.LastName, dbo.Table.DateOfBirth (и т. Д.) ОТ dbo.Table.Contacts WHERE Email = 'name @ email';

0 голосов
/ 26 февраля 2019

Попробуйте:

SELECT * FROM table GROUP BY email

  • Возвращает все строки с уникальным электронным письмом, полученным при первом появлении идентификатора (если это имеет смысл)
  • IПредположим, это то, что вы искали, так как у меня был примерно такой же вопрос, но ни один из этих ответов не помог мне.
0 голосов
/ 02 января 2019

Если у вас есть уникальный столбец в вашей таблице (например, tableid), попробуйте это.

SELECT EMAIL FROM TABLE WHERE TABLEID IN 
(SELECT MAX(TABLEID), EMAIL FROM TABLE GROUP BY EMAIL)
0 голосов
/ 02 декабря 2018

просто запросить этот запрос, выбрать все записи из таблицы, где адрес электронной почты уникален:

select distinct email,* from table_name
0 голосов
/ 27 июля 2017

Запрос:

Select *, (Select distinct email) from Table1
0 голосов
/ 20 августа 2016

Не сработает ли это:

 SELECT email FROM table1 t1 
          where UNIQUE(SELECT * FROM table1 t2); 
...