数据表名 data
id ref_id num
1 1 5
2 3 7
3 5 8
4 3 7
5 1 5 
6 3 7
 1查询ref_id不重复的记录 2按照ref_id进行统计,一共有多少条不同的记录

解决方案 »

  1.   

    1.
    select * from(
      select data.*,count(1)over(partition by ref_id)c
      from data)
    where c=12.
    select count(distinct ref_id) from data
      

  2.   

    1.
    如果重复的记录要取一条,而不是全都不显示
    可以
    select * from(
      select data.*,row_number()over(partition by ref_id order by rownum)rn
      from data)
    where rn=1
      

  3.   

    1:
    select id,ref_id,num from tab where refid in(select refid from tab a having count(*)=1 group by a.refid )
    2: 
    select count(distinct ref_id) from tab a
      

  4.   

    真是简单的题啊!1. 
    select * from( 
      select data.*,count(1)over(partition by ref_id)c 
      from data) 
    where c=1 2. select count(distinct ref_id) from data