我想有一个SQL查询来选择所有这些重复的行。例如,在名为OWNER_NAME的列中,有数千条记录。但我只选择那些被复制像SQL查询选择仅复制的所有数据行
阿贾伊
阿贾伊·辛格
阿贾伊·沙玛
博比·德尔
鲍比
维克拉姆·辛格
维克拉姆·夏尔马的名字。
意味着整个字母系列应该覆盖n的所有单名应删除
我想有一个SQL查询来选择所有这些重复的行。例如,在名为OWNER_NAME的列中,有数千条记录。但我只选择那些被复制像SQL查询选择仅复制的所有数据行
阿贾伊
阿贾伊·辛格
阿贾伊·沙玛
博比·德尔
鲍比
维克拉姆·辛格
维克拉姆·夏尔马的名字。
意味着整个字母系列应该覆盖n的所有单名应删除
我会大致这样:
SELECT * FROM (
SELECT owner_name,
COUNT(*) OVER (PARTITION BY CASE WHEN instr(owner_name, ' ') = 0 then owner_name
else substr(owner_name, 1, instr(owner_name, ' ') - 1)
END) cnt
FROM table
) WHERE cnt > 1
将根据第一个字(直到第一个空间如果有的话)使组。也许你想upper
ize它也。
我会将它存储到一个数据集并循环重复。
在那里看不到任何重复...?上面哪一行应该删除? – 2011-05-05 10:32:38
请输入以上输入中的预期输出 – Mayank 2011-05-05 10:36:47
您是否想要选择同时显示为全名的一部分的单个名称,并删除这些名称? – StevieG 2011-05-05 10:48:48