
正文
sqlserver排名,sql查排名
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
SQL 分值汇总 并且 计算排名如何
如果你是sqlserver的话,语法如下
select *,row_number() over(partition by [总分] order by [总分] desc) as [排名] from (select [姓名],sum([奖惩分值]) as [总分] FROM [积分明细表] group by [姓名]) A
相关问答
Q1: (SQL SERVER)SQL 语句计算多列排名,如题:
with tt as(
select '88' A1,'9' A2
union all
select '55' A1,'9' A2
union all
select '55' A1,'4' A2
union all
select '99' A1,'4' A2
union all
select '99' A1,'1' A2
)
select A1,DENSE_RANK() OVER(ORDER BY A1 desc) as A_1,A2,DENSE_RANK() OVER(ORDER BY A2 desc) as A_2 from tt
select A1,RANK() OVER(ORDER BY A1 desc) as A_1,A2,RANK() OVER(ORDER BY A2 desc) as A_2 from tt
Q2: sql server 2008 怎么排名次
你需要使用sqlserver提供的排名函数进行处理
比如
row_number()
rank()
dense_rank()
ntile()
Q3: 怎么写一个sql语句来显示排名
在Sqlserver2005+中:
利用:Row_Number() over(order by chengji) 可以显示排名
--sql如句如下:
select *,row_number() over(order by chengji) paiming from Stu
如有问题可以追问,我当及时回答。
希望能帮到你!
Q4: sqlserver查询张三每门课的成绩排名
这里userid设置为1001,这里先统计每名课程成绩大于张三成绩的学生数,然后在统计的数上加1即为张三的排名。这里是mysql的测试,如需在oracle上使用,请把IFNULL函数换成oracle的NVL函数。根据tab后面的数字阅读会清楚一点,可以一个一个tab先执行看结果。
select tab4.kcid,IFNULL((select tab5.kcrank from (select tab3.kcid as kcid,count(*) as kcrank from (select tab2.* from chengji tab2 , (select * from chengji where userid=1001) tab1 where tab2.kcid=tab1.kcid and tab2.cj tab1.cj) tab3 group by tab3.kcid) tab5 where tab4.kcid=tab5.kcid),0)+1 as kcrank from chengji tab4 where tab4.userid=1001





