题解 | #刷题通过的题目排名#

刷题通过的题目排名

http://www.nowcoder.com/practice/cd2e10a588dc4c1db0407d0bf63394f3

本题我没搞出来的是排名这个事情怎么弄?
参考了题解,才发现如此巧妙的手段,通过两张一样的表自己比较,找到大于当前number的所有number,去重后计数,就可以实现名次的问题。
SELECT a.id,a.number,
(
    SELECT COUNT(DISTINCT(b.number))
    FROM passing_number b
    WHERE b.number >=a.number
) AS t_rank
FROM passing_number a
ORDER BY a.number DESC , a.id ASC


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务