有一个查询,如查客户ID,客户姓名,客户地址.... ,客户类型,
现在需要按相同客户类型的多少来排序,就是同一种客户类型数量少的排在前面,多的排在后面,
比如:客户类型有会员、普通客户、潜在客户,按照条件查出来的记录中,会员有10个,普通客户有15个,潜在客户有20个,
那么是会员的客户要排在前面,普通客户排在中间,潜在客户排在最后。
能不能用一个SQL实现???请SQL高手指教,数据库是ORACLE

解决方案 »

  1.   

    select a.*
    from tb a,
    (select 客户类型,count(*) count from tb group by 客户类型)b
    where a.客户类型=b.客户类型
    order by b.count
      

  2.   

    select 客户ID,客户姓名,客户地址.... ,客户类型,
           count(1) over(partition by 客户类型) rn
      from t
     order by rn