刚才的问题(http://topic.csdn.net/u/20071018/14/e713a82e-1b2d-4043-a87d-691f04ad1bde.html)没说清楚重新叙述:
有一个文章表,里面有字段:文章ID、作者、得票数。一个作者可以发多篇文章,但得票数只按每篇文章计算。
现在要统计得票最高的前100作者。例如,a作者发了一篇文章得票数列1名,b发了俩文章列4,5名,c发了仨文章列2,3,6,那作者顺序应该是a,c,b不知道这次说清没有,再次感谢回答~~~
也可以向刚才的问题返回答案,我将把分数一并送上。

解决方案 »

  1.   

    select top * from
    (
      select 作者,sum(得票数) 得票总数 from tb group by 作者
    ) t
    order 得票总数 desc
      

  2.   

    select top * from
    (
      select 作者,sum(得票数) 得票总数 from tb group by 作者
    ) t
    order by 得票总数 desc
      

  3.   

    文章id  作者  得票
    1       a     88
    2       c     87
    3       c     83
    4       b     82
    5       b     81
    6       b     80
    7       d     77
    8       e     75
    9       f     70
    10      g     69如果是前5名作者的话,应该列出a,c,b,d,e
      

  4.   


    SELECT TOP100 作者, MAX(得票) FROM 表 GROUP BY 作者 order by 得票
      

  5.   


    刚才有一点笔误 更正一下
    SELECT TOP 100 作者, MAX(得票) FROM 表 GROUP BY 作者 order by 得票
      

  6.   

    文章id  作者  得票 
    1       a     88 
    2       c     87 
    3       c     83 
    4       b     82 
    5       b     81 
    6       b     80 
    7       d     77 
    8       e     75 
    9       f     70 
    10      g     69 如果是前5名作者的话,应该列出a,c,b,d,e 
    ---------------------------------
    c总共才170票,b有243票。而c却排在b的前面
    看楼主的意思是对作者的平均得票进行排序吗?
    如果是的话。可以这样:
    create table wz(文章id int,作者 varchar(50),得票 int)
    insert into wz select 1,'a',     88 
    insert into wz select 2  ,     'c',     87 
    insert into wz select 3  ,     'c',     83 
    insert into wz select 4  ,     'b',     82 
    insert into wz select 5  ,    'b',     81 
    insert into wz select 6  ,     'b',     80 
    insert into wz select 7  ,     'd',     77 
    insert into wz select 8  ,     'e',     75 
    insert into wz select 9 ,      'f',     70 
    insert into wz select 10 ,     'g',     69 select top 5 作者 from (select 作者,sum(得票)*1.0/count(1) [平均票数] from wz group by 作者)a