我有一个包含列的表:日期,电话,姓名和事件。
我需要一个首先识别重复电话条目的查询,然后将具有较早日期的名称分配给事件列。
答案 0 :(得分:2)
使用:
UPDATE x
SET x.event = y.name
FROM YOUR_TABLE x
JOIN YOUR_TABLE y ON y.phone = x.phone
JOIN (SELECT t.phone,
MIN(t.date) As min_date
FROM YOUR_TABLE t
GROUP BY t.phone
HAVING COUNT(*) > 1) z ON z.phone = y.phone
AND z.min_date = y.date
AND z.min_date < x.date
但如果存在重复的最小值,则无法解决。