Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ORACLE:如何检查和删除重复列值_Sql_Oracle - Fatal编程技术网

Sql ORACLE:如何检查和删除重复列值

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号码”(拨打电话的号码),请将每次出现的次数限制为3次。也就是说,从“A号码”(拨打“B号码”的号码)列表中,我们可能会有多个人拨打同一个“B号码”。如果“B号码”在总拨号列表中出现3次以上,请将其从随后可能出现的“A号码”中删除

我想弄清楚,当这些重复的“B号”出现次数超过3次时,如何检查并删除它们

下面是表结构的示例列表


所以当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)