【发布时间】:2012-03-19 09:24:25
【问题描述】:
我有一个行数为 692256 的表,其数据类似于下面
customer_type_id data
1 G.M (1)
1 GM (1)
1 FORD (K.G)
1 FORD(K.G)
1 Honda
2 GM (1)
2 OTHER
2 OTHER2
在上述情况下,我必须根据 customer_type_id 和 data 列删除重复项。 并且重复项并不完全重复。例如前两条记录是重复的,接下来的两条记录也是重复的。 data 中可能有一些空格或句点或大括号。所以要获得重复项,我必须在 data 列上运行以下函数
trim( replace(replace(replace(replace(replace(data,'.',''),'(',''),')',''),' ','') ,' ','') )
现在我想从上述案例中删除其中一行并保留另一行的格式。
在上述情况下我想得到
customer_type_id Data
1 G.M (1)
1 FORD(K.G)
1 Honda
2 GM (1)
2 OTHER
2 OTHER2
事实上,任何重复值的记录都可以。但不应该像下面这样(在下面的情况下,数据列值空格和大括号已从现有值中删除)
customer_type_id Data
1 GM1
1 FORDKG
1 Honda
2 GM (1)
2 OTHER
2 OTHER2
对此有什么帮助吗?
非常感谢
问候
基兰
【问题讨论】:
-
SELECT DISTINCT(id), artist FROM news一个例子 -
感谢您的回复,在这里我不能使用 distinct .. 因为如果我在格式化数据上使用 distinct,我会丢失真实记录
-
值不完全重复..请检查我上面给出的示例..我必须删除一些字符以使其重复
-
您好 Zohaib,感谢您的回复。很抱歉没有,但如果我们愿意,我可以添加另一列作为主键并使其自动递增