现在有一张视图按分类查处重复记录比如现在有三个分类,自营,资管,研究这三个类型的数据都在这个视图type  Stockcode mairu  自营  001        1
自营  001        2资管  002        1
资管  001        2研究  003        2
研究  001        2
就是把类型为自营,和资管的数据进行对比,如果stockcode相同就查出来,结果
type  Stockcode mairu自营  001        1
自营  001        2
资管  001        2

解决方案 »

  1.   

    select * from (select type,Stockcode,mairu,row_number() over(partion by Stockcode order by type) rn) where rn>1
      

  2.   

    结果
    type Stockcode mairu自营 001 1
    自营 001 2
    资管 001 2
    ----------------
    看你这样的结果貌似没做什么特定的逻辑处理,而只是查询出了Stockcode='001';
    我觉得以下查询就可以得出结果,不知道是否误解了你的意思.
    SELECT type ,Stockcode ,mairu WHERE Stockcode='001';
      

  3.   


    select m.* from tb m where exists(select 1 from
    (select type , mairu from (select distinct type , mairu from tb) t group by type , mairu having count(1) > 1) n
    where n.type = m.type)
      

  4.   

    自营stockcode相同的数据,并且资管没有stockcode和它相同的时候,这种数据应该不检索出来SQL> WITH t AS (
      2      SELECT '自营' ttype,'001' stockcode,1 mairu FROM dual UNION ALL
      3      SELECT '自营' ttype,'001' stockcode,2 mairu FROM dual UNION ALL
      4      SELECT '自营' ttype,'003' stockcode,1 mairu FROM dual UNION ALL
      5      SELECT '自营' ttype,'003' stockcode,2 mairu FROM dual UNION ALL
      6      SELECT '自营' ttype,'004' stockcode,2 mairu FROM dual UNION ALL
      7      SELECT '资管' ttype,'002' stockcode,1 mairu FROM dual UNION ALL
      8      SELECT '资管' ttype,'001' stockcode,2 mairu FROM dual UNION ALL
      9      SELECT '资管' ttype,'005' stockcode,2 mairu FROM dual UNION ALL
     10      SELECT '资管' ttype,'005' stockcode,2 mairu FROM dual UNION ALL
     11      SELECT '研究' ttype,'003' stockcode,2 mairu FROM dual UNION ALL
     12      SELECT '研究' ttype,'001' stockcode,2 mairu FROM dual
     13  )
     14  SELECT m.ttype,
     15         m.stockcode,
     16         m.mairu
     17    FROM (SELECT t.*,
     18                 COUNT(*) OVER(PARTITION BY t.stockcode) total_cn,
     19                 COUNT(*) OVER(PARTITION BY t.ttype, t.stockcode) cn
     20            FROM t
     21           WHERE t.ttype IN ('自营', '资管')) m
     22   WHERE m.total_cn <> cn
     23  ;
     
    TTYPE  STOCKCODE      MAIRU
    ------ --------- ----------
    自营   001                1
    自营   001                2
    资管   001                2