1 select count(pb03102) from sdpb031 group by pb03101
2 select distinct pb03102 from sdpb031
我第一条语句查询出41条记录,第二条语句查出48条记录。这个是为什么?本来我想
select * from 
(select count(pb03102) as aa,pb03102 from sdpb031 group by pb03101,pb03102) as a
right join
(select distinct pb03102 from sdpb031) as b
on a.pb03102 = b.pb03102
对比出看哪些记录不同,但我实际想的跟结果又不同????
求解答啊,求思路

解决方案 »

  1.   

    count(distinct pb03102)--這樣用 1
      

  2.   

    1 select count(pb03102) from sdpb031 group by pb03101
    2 select distinct pb03102 from sdpb031
    明显两个都不同的意思,怎么比pb03101  pb03102
    1    1
    1   2你统计后一条,DISTINCT 2两条
      

  3.   

    count(pb03102)是记数.
    distinct pb03102 是去重.原理不一样,结果当然不一样.
      

  4.   

    select count(pb03102),COUNT(distinct pb03102) from sdpb031 group by pb03101
      

  5.   

    select count(pb03102),count(distinct pb03102) from sdpb031 group by pb03101
      

  6.   

    select 
           count(pb03102)OVER(),
           COUNT(*)OVER(PARTITION BY pb03102) 
    from sdpb031 
      

  7.   

    select count(pb03102),COUNT(distinct pb03102) 
    from sdpb031 
    group by pb03101
    having count(pb03102)>COUNT(distinct pb03102)這樣自己加條件判斷