Sql ORACLE:如何检查和删除重复列值
对于“B号码”(拨打电话的号码),请将每次出现的次数限制为3次。也就是说,从“A号码”(拨打“B号码”的号码)列表中,我们可能会有多个人拨打同一个“B号码”。如果“B号码”在总拨号列表中出现3次以上,请将其从随后可能出现的“A号码”中删除 我想弄清楚,当这些重复的“B号”出现次数超过3次时,如何检查并删除它们 下面是表结构的示例列表Sql ORACLE:如何检查和删除重复列值,sql,oracle,Sql,Oracle,对于“B号码”(拨打电话的号码),请将每次出现的次数限制为3次。也就是说,从“A号码”(拨打“B号码”的号码)列表中,我们可能会有多个人拨打同一个“B号码”。如果“B号码”在总拨号列表中出现3次以上,请将其从随后可能出现的“A号码”中删除 我想弄清楚,当这些重复的“B号”出现次数超过3次时,如何检查并删除它们 下面是表结构的示例列表 所以当B数出现三次以上时,我想保留A数,但删除B数。有什么想法吗?使用row\u Number()分析函数可以很容易地将结果限制在最多3个B数字 select a
所以当B数出现三次以上时,我想保留A数,但删除B数。有什么想法吗?使用
row\u Number()
分析函数可以很容易地将结果限制在最多3个B数字
select a_number, b_number
from (select a_number, b_number,
row_number() over (partition by b_number order by null) as rn
from your_table)
where rn <= 3
学校作业?你试过什么?这是怎么回事?删除记录的逻辑是什么?您只想删除“B”号或某些行?正如我在描述中提到的,逻辑是如果一个B号出现三次以上,则不应将其包括在结果列表中。也就是说,如果有5个人呼叫了同一个B号码,那么5个A号码中只有3个可以与该B号码保持匹配记录。@Aツ 我只想删除B号而不是整个记录OK。顺序无关紧要。b数gonna顺序的任意前三次出现
row_number() over (partition by b_number order by pick_an_ordering_column)