简单的排序问题

zhousq00 2010-06-24 10:54:59
数据库中表TB
ID fenshu
1 2
2 3
3 5
4 8
5 10
6 16

能不能用一条语句得出10分是在正个表中是排第几的(从高往底排)
即:得出的记过应该是:2
...全文
104 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhousq00 2010-06-24
  • 打赏
  • 举报
回复
谢谢,结帖,都是高手!
中国风 2010-06-24
  • 打赏
  • 举报
回复
COUNT(DISTINCT [fenshu])--把分數相同的排名相同
中国风 2010-06-24
  • 打赏
  • 举报
回复
use Tempdb
go
--> -->

if not object_id(N'Tempdb..#') is null
drop table #
Go
Create table #([ID] int,[fenshu] int)
Insert #
select 1,2 union all
select 2,3 union all
select 3,5 union all
select 4,8 union all
select 5,10 union all
select 6,16 UNION ALL
select 7,16 --加多一個記錄如下

Go
--SQL2005以上版本
select
DENSE_RANK()over(order by fenshu desc) as 排名,*
from #
ORDER BY 1
--SQL2000

SELECT
(SELECT COUNT(DISTINCT [fenshu]) FROM # WHERE [fenshu]>t.[fenshu])+1as 排名
,*
from # AS t

ORDER BY 1

/*

(7 個資料列受到影響)
排名 ID fenshu
-------------------- ----------- -----------
1 6 16
1 7 16
2 5 10
3 4 8
4 3 5
5 2 3
6 1 2

(7 個資料列受到影響)

排名 ID fenshu
----------- ----------- -----------
1 6 16
1 7 16
2 5 10
3 4 8
4 3 5
5 2 3
6 1 2

(7 個資料列受到影響)


*/
zhousq00 2010-06-24
  • 打赏
  • 举报
回复
说明一下,我用的是SQL Server 2000数据库
rmljoe 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rmljoe 的回复:]
SQL code
select
id,
fensu,
(select count(1) from tb b where a.fensu >= b.fensu)
from tb a
[/Quote]

反了,应该是 <=
中国风 2010-06-24
  • 打赏
  • 举报
回复
select 
DENSE_RANK()over(order by fenshu desc) as 排名,*
from t


分數相同,並列排名時用DENSE_RANK
jiangshun 2010-06-24
  • 打赏
  • 举报
回复

--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
create table [TB]([ID] int,[fenshu] int)
insert [TB]
select 1,2 union all
select 2,3 union all
select 3,5 union all
select 4,8 union all
select 5,10 union all
select 6,16

select ID from(
select [fenshu],ID=Row_Number() over(order by ID desc) from [TB])g
where [fenshu]=10

/*
ID
--------------------
2

(1 行受影响)

*/

drop table [TB]
rmljoe 2010-06-24
  • 打赏
  • 举报
回复
select
id,
fensu,
(select count(1) from tb b where a.fensu >= b.fensu)
from tb a
中国风 2010-06-24
  • 打赏
  • 举报
回复
select 
row_number()over(order by fenshu desc) as 排名,*
from t

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧