VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 737|回复: 5

sql 排名 并列问题

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-10 23:30:01 | 显示全部楼层 |阅读模式


select ROWNUM=(select sum(1) from member where member_mark>=a.member_mark),
                member_id,member_mark
        from member a order by ROWNUM

正确的结果应该是 mopaco 是第2名才对


1,老李      ,100
3,mopaco    ,90
3,taotao3166,90
6,跑车      ,70
6,ceagle    ,70
6,小崔      ,70
回复

使用道具 举报

0

主题

12

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-4-5 19:45:01 | 显示全部楼层
select
    ROWNUM=isnull((select count(*) from member where member_mark>a.member_mark),0)+1,
    member_id,
    member_mark
from
    member a
order by
    ROWNUM
回复

使用道具 举报

1

主题

9

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-4-6 01:00:01 | 显示全部楼层
select ROWNUM=(select sum(1)+1 from member where member_mark>=a.member_mark),
                member_id,member_mark
        from member a order by ROWNUM
回复

使用道具 举报

1

主题

13

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-4-11 17:00:01 | 显示全部楼层

其实还有其他的解决方案
学习了
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-4-13 01:45:01 | 显示全部楼层
这个是我自己的答案 是同学想的

select 名次=(select sum(1) from member where member_mark>a.member_mark or member_id=a.member_id),
                member_id,member_mark
        from member a order by 名次
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-4-14 10:00:01 | 显示全部楼层
select ROWNUM=(select count(DISTINCT member_mark) from member where member_mark>=a.member_mark),
                member_id,member_mark
        from member a order by ROWNUM
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表