跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 力扣 sql 题: 178. 分数排名的疑问?小数点后面多了一位
未分類
10 9 月 2020

力扣 sql 题: 178. 分数排名的疑问?小数点后面多了一位

力扣 sql 题: 178. 分数排名的疑问?小数点后面多了一位

資深大佬 : amiwrong123 1

select t.score Score,t.rank 'Rank' from  (     select score, @r:=IF(@sc=score,@r,@r+1) as 'rank', @sc:=score     from Scores, (select @r:=0, @sc:=NULL)init     order by score desc ) t  

力扣 sql 题: 178. 分数排名的疑问?小数点后面多了一位

结果都是对的,为啥我这个小数点后面多了一位呢? 好像 rank 的数据类型也不对呢。。

大佬有話說 (7)

  • 主 資深大佬 : amiwrong123

    网址在这里,大佬们帮忙瞅瞅

    https://leetcode-cn.com/problems/rank-scores/

  • 資深大佬 : justgodlike1993

    用 CAST 转

  • 主 資深大佬 : amiwrong123

    @justgodlike1993
    两个字段都得转吗

  • 資深大佬 : walkerliu

    select `Score`,CONVERT(SUBSTRING_INDEX(`Rank`,’-‘,-1),UNSIGNED INTEGER) as `Rank` from (
    select score, case
    when @preScore – score > 0.001 then @rank := @rank + 1
    else @rank
    end
    as `rank` ,
    @preScore := score from (select score from Scores order by score desc ) v,(select @rank := 1,@preScore := -1) r
    ) p

  • 主 資深大佬 : amiwrong123

    @walkerliu
    感觉里面不需要嵌套两个子查询吧,晚上我执行一下你的。

    为啥我那个外层查询得到 rank 的字段看起来是个字符串的类型呢,奇怪,晚上看看

  • 資深大佬 : walkerliu

    @amiwrong123 我的是英文版的网站,这个 SQL 是我 17 年的提交,现在翻出来已经 accept 不了了,改了一下才行(加了 “)。 另外查询结果的 score 应该是对的不存在小数点的问题。Rank 需要强转一下成 int 类型。

  • 主 資深大佬 : amiwrong123

    @walkerliu
    好吧,我也觉得小数点应该不是问题,但为毛,那个自定义变量 @r 都是一个 int 型的,但从子查询的结果集再一查就变成了个字符串了。

    这是个什么知识点。。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具