2008-09-05 29 views

cevap

0

e-posta alanına listesine katılın ve sonra da sonuç almak boş değerlere görmek olmaz mı?

Veya daha iyisi, her e-posta adresinin örneklerini sayın mı? Ve sadece olanlar> 1

ile iade edin, hatta e-posta ve kimlik alanlarını da alın. Ve e-postanın aynı olduğu girişleri döndür ve kimlikleri farklı. (Daha doğrusu < veya> ya! Çiftleri kullanmayın önlemek = ama belirleyin.) Bu

select email ,max(receiveddate) as MaxDate 
from YourTable 
group by email 
having count(email) > 1 
9

şey bu

select * from table a, table b 
where a.email = b.email 
0

gibi

0
SELECT [id], [receivedate], [email] 
FROM [mytable] 
WHERE [email] IN (SELECT [email] 
    FROM [myTable] 
    GROUP BY [email] 
    HAVING COUNT([email]) > 1) 
0

sen bir listesini ister misin dene son ürün? Eğer öyleyse şunu kullanabilirsiniz:

SELECT [info] FROM [table] t WHERE NOT EXISTS (SELECT * FROM [table] tCheck WHERE t.date > tCheck.date) 

tüm yinelenen e-posta adresi kullanımı GRUBU TARAFINDAN listesini isterseniz benzer verileri, daha sonra HAVING yan tümcesi toplamak için miktar fazla 1 olduğundan emin olmak için:

SELECT [info] FROM [table] GROUP BY [email] HAVING Count(*) > 1 DESC 

son yinelenen e-posta (tek sonuç) basitçe "ORDER BY" a "TOP 1" ve eklemek isterseniz: Eğer vekil anahtar varsa, bu nispeten kolaydır

SELECT TOP 1 [info] FROM [table] GROUP BY [email] HAVING Count(*) > 1 ORDER BY Date DESC 
0

kullanmak belirtilen sözdizim grubu SQLMenance'ın gönderisinde. Esasen, iki veya daha fazla satır "aynı" yapan tüm alanlar tarafından gruplandırın.

Yinelenen kayıtları silmek için örnek sözde kod.

Create table people (ID(PK), Name, Address, DOB) 

Delete from people where id not in (
Select min(ID) from people group by name, address, dob 
)