2010-05-04 40 views
0

我有一个包含大约200k个地址的表。一些不活跃的其他活动。不活跃的是我活跃的复制品。一些活动的没有address_3(社区名称),但一些不活动的重复确实有address_3。我需要将不活动的地址_3变为激活的重复匹配。我正在努力与结构。谁能帮忙?sql newbi - 需要将address_3从非活动的dup记录复制到活动的address_3

+2

没有足够的信息。我们如何将重复记录与活动记录进行匹配?如果多个非活动记录具有不同的address_3,那么非活动记录是否有时间戳或者我们将如何选择使用哪个地址? – 2010-05-04 21:24:45

+0

该pkey id是一个序列号。当我标记我按地址1,地址2,城市,州,邮编分组的模式并保留最大ID并使所有其他人处于活动状态时= false。所有都在创建时间戳。如果有多个地址3,则选择不活动的最大ID。 – Parker 2010-05-05 11:53:32

回答

1

假设有一个域名为ADDRESS_1什么的,我们可以通过组,我想:

•创建一个空表(从你现有的表重用DDL)。
•使用address_3不为空的行填充该表,并确保GROUP BY为适当的列(如下所示)。

我会运行没有INSERT的SELECT,以确保您有正确的数据。

INSERT INTO second_addresses_table 
SELECT 
    a.address_1, 
    -- #other columns... 
    a.address_3, 
    TRUE -- #default to Active = TRUE 
FROM 
    first_addresses_table a 
WHERE 
    a.address_3 IS NOT NULL 
GROUP BY 
    a.address_1, 
    -- #other columns... 
    a.address_3