col1       col2             col3        col4....
20101025    aa(指定代码)    任意内容    任意内容
20101025    bb              任意内容
20101025    cc              任意内容
20101025    bb              任意内容
20101025    bb              任意内容
20101025    cc              任意内容
20101025    dd              任意内容
20101025    dd              任意内容
20101025    dd              任意内容
20101025    dd              任意内容
col1 col2 col3 是三个列,其中col2是个代码列,里面都是一些指定的代码数据(固定常数),现在想要获得col2列中前n个不重复的值,按照对应数值的多少顺序排序,比如按照上面例子最后希望获得的结果为dd
bb
cc
aa因为dd有4个,bb3个,cc2个 aa只有一个,不知道一个sql能否实现

解决方案 »

  1.   

    select col3  from tb group by col3  order by count(*)
      

  2.   

    create table tb(col1 datetime,col2 varchar(2),col3 varchar(8))insert tb
    select '20101025','aa','任意内容' union all
    select '20101025','bb','任意内容' union all
    select '20101025','cc','任意内容' union all
    select '20101025','bb','任意内容' union all
    select '20101025','bb','任意内容' union all
    select '20101025','cc','任意内容' union all
    select '20101025','dd','任意内容' union all
    select '20101025','dd','任意内容' union all
    select '20101025','dd','任意内容' union all
    select '20101025','dd','任意内容'select col2  from tb group by col2  order by count(*) desc
      

  3.   

    select col2  from tt group by col2  order by count(*) desc