【SQL干貨】求去重后的count數


如下簡化后的數據表。 該表記錄了每個商戶的注冊用戶。  正常情況下,一個手機號不會被多個用戶使用。由於歷史原因,表里出現了這樣的“一個手機號被多人使用”的數據。

 

✅ 現在要統計每個商戶下,有多少手機號是重復的。手機號重復的定義是:手機號重復,姓名,身份證號不同叫手機號重復。

SELECT mer_id, count(1)
from (
    select mer_id,mobile,count(distinct name||idno)
    from (
     select 1 as mer_id,'13201010101' as mobile,'zhangsan' as name,'130434198801258888' as idno from dual union all
     select 1,'13312345678' , 'zhangsan', '130434198801258888' from dual union all
     select 1,'13201010101' , 'lisi', '120115198801256666' from dual union all
     select 1,'15688880000' , 'maliu', '31010419001020751X' from dual union all
     select 1,'18787654321' , 'maliu', '31010419001020751X' from dual union all
     select 1,'13312345678' , 'wangwu', '11011520101020118X' from dual union all
     select 1,'18787654321' , 'wangwu', '11011520101020118X' from dual union all     
     select 2,'13312345678' , 'wangwu', '11011520101020118X' from dual union all
     select 2,'13312345678' , 'maliu', '31010419001020751X' from dual
     ) a
     group by mer_id,mobile
     HAVING count(distinct name||idno)>1
 ) a
 group by mer_id;

結果:

 

✅ 全局統計,有多少手機號是重復的,不區分商戶。

SELECT  count(1)
from (
    select mobile,count(distinct name||idno)
    from (
     select 1 as mer_id,'13201010101' as mobile,'zhangsan' as name,'130434198801258888' as idno from dual union all
     select 1,'13312345678' , 'zhangsan', '130434198801258888' from dual union all
     select 1,'13201010101' , 'lisi', '120115198801256666' from dual union all
     select 1,'15688880000' , 'maliu', '31010419001020751X' from dual union all
     select 1,'18787654321' , 'maliu', '31010419001020751X' from dual union all
     select 1,'13312345678' , 'wangwu', '11011520101020118X' from dual union all
     select 1,'18787654321' , 'wangwu', '11011520101020118X' from dual union all     
     select 2,'13312345678' , 'wangwu', '11011520101020118X' from dual union all
     select 2,'13312345678' , 'maliu', '31010419001020751X' from dual
     ) a
     group by mobile
     HAVING count(distinct name||idno)>1
 ) a

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM