逻辑问题 兼并SQL

Mg_Mags 2019-11-08 04:35:05

如图 有张表 其中数据是这样的 省 市 区 其中的6位的编号是市区的编号

现有一个需求。
模拟场景:人员700人 每个人属于不同的省份 只对应到市区。
全国统一进行考试,
查询当前用户考试成绩 并根据用户所属的地点 进行省内排名!
何解?? 给点建议
...全文
63 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2019-11-08
  • 打赏
  • 举报
回复
for example select a.成绩, a.省份, 1+(select count(*) from yourtable where 成绩>a.成绩 and 省份=a.省份) as 省份排名 from yourtable a order by a.省份, 省份排名
Mg_Mags 2019-11-08
  • 打赏
  • 举报
回复
引用 3 楼 人生呐 的回复:
SELECT b.* FROM
(
SELECT t.*, @rownum := @rownum + 1 AS rownum
FROM (SELECT @rownum := 0) r,
(SELECT * FROM 表 ORDER BY 成绩 DESC ) AS t
) AS b WHERE b.用户 = 用户;
试试这个
这个方法试过 不好用 因为 关联的表有点多 排序后 不是想要的顺序 ! 问题可能没说太明白 ,是每个人的市区不同 。一次考试 全国统一考试 根据市区确定省份,根据用户的成绩确定当前省份的排名
  • 打赏
  • 举报
回复
SELECT b.* FROM
(
SELECT t.*, @rownum := @rownum + 1 AS rownum
FROM (SELECT @rownum := 0) r,
(SELECT * FROM 表 ORDER BY 成绩 DESC ) AS t
) AS b WHERE b.用户 = 用户;
试试这个
dkwuxiang 2019-11-08
  • 打赏
  • 举报
回复
每个人属于不同的省份 , 省内排名,不就是第一吗?哈哈
  • 打赏
  • 举报
回复
先查出这个用户所在市的所有人的成绩,然后排序,加rownum,其中这个用户对应的rownum就是他的排名

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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