Jak mogę użyć klauzuli DISTINCT z WHERE? Na przykład:Klauzula DISTINCT z WHERE
SELECT * FROM table WHERE DISTINCT email; -- email is a column name
Chcę wybrać wszystkie kolumny z tabeli z różnymi adresami e-mail.
Jak mogę użyć klauzuli DISTINCT z WHERE? Na przykład:Klauzula DISTINCT z WHERE
SELECT * FROM table WHERE DISTINCT email; -- email is a column name
Chcę wybrać wszystkie kolumny z tabeli z różnymi adresami e-mail.
Jeśli masz na myśli wszystkich kolumn, których e-mail jest wyjątkowy:
SELECT * FROM table WHERE email in
(SELECT email FROM table GROUP BY email HAVING COUNT(email)=1);
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
Można używać ROW_NUMBER(). Możesz także określić warunki, w których się znajdujesz. (Np Name LIKE'MyName%
w następującej kwerendzie)
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
Jedna prosta kwerenda będzie zrobić:
SELECT *
FROM table
GROUP BY email
HAVING COUNT(*) = 1;
Op nie określił smaku SQL, ale to polecenie nie uruchomi się w SQL Serverze i spowoduje niejednoznaczne wyniki w MySQL. –
nie ta praca:
SELECT email FROM table1 t1
where UNIQUE(SELECT * FROM table1 t2);
Nie jestem świadomy wielu DBMS, które zaimplementowały predykat UNIQUE. Którego używasz? Ponadto, myślę, że masz pytania do tyłu: nie należy "SELECT email" być zapakowane w predykat "UNIQUE()"? I myślę, że potrzebujesz jakiejś klauzuli join ('FROM table1 t2 WHERE t2.email = t1.email'). – JDB
Zapytanie:
Select *, (Select distinct email) from Table1
Możesz użyć HAVING
zdanie.
SELECT *
FROM tab_name
GROUP BY email_id
HAVING COUNT(*) = 1;
To sprzeczność w terminach. Masz na myśli "WYBIERANIE wszystkich kolumn, których adres e-mail jest niepowtarzalny"? –
@adam: - tak !! – Mohit
OK, odpowiedział na twoje pytanie. –