字段分别是:课程名称,点击次数
课程名称,点击次数
项目管理   10
项目策划   11
项目实施   9我想按照课程点击次数高的顺序进行课程排行,当然要求课程名称不能重复,想知道sql语句该怎么写。

解决方案 »

  1.   

    select * from (
    select 课程名称,sum(点击次数) as 点击次数 from 表名 group by 课程名称) as a
    order by 点击次数 asc
      

  2.   


    select * , px = (select count(1) from tb where 点击次数 < t.点击次数) + from tb t
      

  3.   

    select 课程名称,sum(点击次数) 点击次数
    from tb
    group by 课程名称
    order by 2 desc这样子?
      

  4.   

    create table tb(课程名称 varchar(10) , 点击次数 int)
    insert into tb values('项目管理' ,  10) 
    insert into tb values('项目策划' ,  11) 
    insert into tb values('项目实施' ,  9 )
    goselect * , px = (select count(1) from tb where 点击次数 > t.点击次数) + 1 from tb t order by t.pxdrop table tb/*
    课程名称       点击次数        px          
    ---------- ----------- ----------- 
    项目策划       11          1
    项目管理       10          2
    项目实施       9           3(所影响的行数为 3 行)
    */
      

  5.   

    --如果考虑课程重复,得先group by 分组.create table tb(课程名称 varchar(10) , 点击次数 int)
    insert into tb values('项目管理' ,  10) 
    insert into tb values('项目策划' ,  11) 
    insert into tb values('项目实施' ,  9 )
    insert into tb values('项目实施' ,  9 ) -- 增加测试数据
    go
    --显示测试数据
    select * from tb
    /*
    课程名称       点击次数        
    ---------- ----------- 
    项目管理       10
    项目策划       11
    项目实施       9
    项目实施       9(所影响的行数为 4 行)
    */--排序
    select * , px = (select count(1) from 
    (
      select 课程名称 , 点击次数 = sum(点击次数) from tb group by 课程名称
    ) n where 点击次数 > m.点击次数) + 1 
    from 
    (
      select 课程名称 , 点击次数 = sum(点击次数) from tb group by 课程名称
    ) m
    order by m.px
    /*
    课程名称       点击次数        px          
    ---------- ----------- ----------- 
    项目实施       18          1
    项目策划       11          2
    项目管理       10          3(所影响的行数为 3 行)
    */drop table tb
      

  6.   

    select 课程名称,Sum(点击次数) AS 点击次数 from tb Group By 课程名称 Order By 点击次数 Desc
      

  7.   

    create table tb(课程名称 varchar(10) , 点击次数 int)
    insert into tb values('项目管理' ,  10) 
    insert into tb values('项目策划' ,  11) 
    insert into tb values('项目实施' ,  9 )
    insert into tb values('项目实施' ,  9 )
    go
    select *
    from (select 课程名称,sum(点击次数) as 点击次数 from tb group by  课程名称)b 
    order by 点击次数
    drop table tb/*\
    课程名称       点击次数        
    ---------- ----------- 
    项目管理       10
    项目策划       11
    项目实施       18(所影响的行数为 3 行)*/
      

  8.   


    create table tb(课程名称 varchar(10) , 点击次数 int)
    insert into tb values('项目管理' ,  10) 
    insert into tb values('项目策划' ,  11) 
    insert into tb values('项目实施' ,  9 )
    insert into tb values('项目实施' ,  9 )
    select 课程名称,点击次数=sum(点击次数) from tb group by 课程名称 order by sum(点击次数) desc课程名称       点击次数
    ---------- -----------
    项目实施       18
    项目策划       11
    项目管理       10(3 行受影响)
      

  9.   

    --2005select * from tab
    order by row_number() over(order by 点击次数) 
      

  10.   


    CREATE TABLE tbTest(课程名称 VARCHAR(10), 点击次数 INT)GOINSERT INTO tbTest VALUES(N'项目管理', 10)GOINSERT INTO tbTest VALUES(N'项目策划', 11)GOINSERT INTO tbTest VALUES(N'项目实施', 9)GOINSERT INTO tbTest VALUES(N'项目实施', 13)GOSELECT 课程名称, 点击次数 = MAX(点击次数) FROM tbTest GROUP BY 课程名称 ORDER BY 点击次数 DESCGO
      

  11.   

    不就个排序吗!zhe me fu za zhi yu ma
    select * from tb  order by  点击次数  desc
      

  12.   

    就是啊,仅仅是排序,有那么复杂吗
    select B.* from 
    (SELECT 课程名称,SUM(点击次数) AS 点击量 FROM 表名 GROUP BY 课程名称) B
    ORDER BY B.点击量 DESC