2008-09-05 13 views

答えて

0

あなたは、電子メールフィールド上のリストに参加して、あなたの結果で取得ゼロにするものを見ることができませんでしたか?

さらに、各電子メールアドレスのインスタンスを数えますか?カウント> 1を返すだけです

さらに、メールとIDフィールドを取得してください。そして、電子メールが同じで、IDが異なるエントリを返します。 (重複は使用しない避けるために!=はなく、むしろ<か>のいずれか。)この

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

何かがこの

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

よう

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

を試してみて、あなたがのリストをしたいですか最後の項目は?もしそうなら、あなたは使用することができます

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

あなたはすべての重複メールアドレス使用GROUP BYのリストが必要な場合は、同様のデータは、HAVING句を収集するために数量が1以下であることを確認する:

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

あなたが最後に重複した電子メール(単一の結果を)したい場合は、単に「TOP 1」と「ORDER BY」を追加します。

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

あなたは代理キーを持っている場合、使用することは比較的容易です構文によるグループSQLMenanceの投稿にあります。基本的には、2つ以上の行を同じにするすべてのフィールドでグループ化します。

重複レコードを削除するための擬似コードの例。

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 
) 
関連する問題