一、Rank Scores

Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value. In other words, there should be no "holes" between ranks.

+----+-------+
| Id | Score |
+----+-------+
| 1  | 3.50  |
| 2  | 3.65  |
| 3  | 4.00  |
| 4  | 3.85  |
| 5  | 4.00  |
| 6  | 3.65  |
+----+-------+

For example, given the above Scores table, your query should generate the following report (order by highest score):+-------+------+

| Score | Rank |
+-------+------+
| 4.00  | 1    |
| 4.00  | 1    |
| 3.85  | 2    |
| 3.65  | 3    |
| 3.65  | 3    |
| 3.50  | 4    |
+-------+------+分析:题意为 编写SQL对分数进行排序。如果两个分数相等,其排名应相同。注意在排名相等的分数之后,下一个排名的数值应该连续。换言之,排名之间不应该有“洞”(跳跃)。思路:使用mysql的自定义变量。
# Write your MySQL query statement below
select Score,Rank from
(
SELECT Score,CASEWHEN @dummy <=> Score THEN @Rank := @Rank ELSE @Rank := @Rank +1END AS Rank,@dummy := Score as dummy
FROM(SELECT @Rank := 0,@dummy := NULL) r,Scores
ORDER BY Score DESC
) AS C

或者:

# Write your MySQL query statement below
SELECT Scores.Score, COUNT(Ranking.Score) AS RANKFROM Scores, (SELECT DISTINCT ScoreFROM Scores) RankingWHERE Scores.Score <= Ranking.ScoreGROUP BY Scores.Id, Scores.ScoreORDER BY Scores.Score DESC;

  

  

 

转载于:https://www.cnblogs.com/carsonzhu/p/4655573.html

leetcode Database3相关推荐

  1. leetcode 5. Longest Palindromic Substring 字符串中的最长回文数 逐步从O(n^2)优化至线性时间

    题目 解析 思路一 暴力解法 思路二 指针+最大长度 思路3 由中间至两边找回数 思路4 Manacher's algorithm 线性时间 参考文档 题目 链接 给定一个字符串 s,找到 s 中最长 ...

  2. LeetCode 10. Regular Expression Matching python特性、动态规划、递归

    前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...

  3. leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法

    题目解析 代码如下 题目解析 这一题是一道会员的题目,题目介绍如下: Given a string, find the length of the longest substring T that c ...

  4. leetcode 3. Longest Substring Without Repeating Characters 最长非重复子串的长度 滑动窗口法

    题目链接 根据我们之前介绍的滑动窗口法的解法: 滑动窗口法详解 leetcode 438. Find All Anagrams in a String 滑动窗口法 这题,我们不难解决,使用之前的模板. ...

  5. leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素

    leetcode:26 对数组元素进行去重,使得原数组重复元素最多保留1个 限制: 我们不可以额外分配数组,必须保持空间复杂度为O(1) 这个并不难实现: class Solution(object) ...

  6. LeetCode简单题之二进制表示中质数个计算置位

    题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...

  7. LeetCode简单题之删除字符使字符串变好

    题目 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请你返回删除后的字符串.题目数据保证答案总 ...

  8. LeetCode简单题之找出两数组的不同

    题目 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,请你返回一个长度为 2 的列表 answer ,其中: answer[0] 是 nums1 中所有 不 存在于 nums2 中的 ...

  9. LeetCode中等题之区域和检索 - 数组可修改

    题目 给你一个数组 nums ,请你完成两类查询. 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nu ...

最新文章

  1. 告别低分辨率网络,微软提出高分辨率深度神经网络HRNet | CVPR 2019
  2. SalttSack自动化运维(二)——环境安装及部署
  3. 零基础自学python的app-零基础初学Python,需要装什么软件?
  4. 计算机义务维修队,我院捷诚义务维修服务队电脑维修服务活动
  5. Dubbo 版 Swagger 来啦!Dubbo-Api-Docs 发布
  6. HDU多校1 - 6955 Xor sum(字典树+贪心)
  7. 结构为键值的map_在Java中增加Map值的最有效方法-只需搜索键一次
  8. MongoDB初学者教程
  9. 实验12 编写0号中断的处理程序
  10. Oracle 并行查询
  11. vue设置输入框输入长度_vue输入框限制字符串长度和输入内容实时验证的实现方式...
  12. 个人课中所学vlan相关知识整理
  13. Selenium处理Select控件
  14. 「leetcode」本周小结!(回溯算法系列一)
  15. WingPro 8 for Mac(专业Python IDE开发工具)
  16. 基于GIS技术的智慧城市数字底盘(时空大数据平台)
  17. A级学科计算机技术,东南大学a类学科排名!附东大a类学科名单
  18. McAfee软件下载与安装
  19. Microsoft Visual C++ 6.0预处理器参考手册
  20. 全球海底光缆及我国海底光缆分布

热门文章

  1. 不要小看日本的AI公司
  2. 腾讯AI又搞出大动作:Robotics X机器人实验室成立,签Nature办新AI大会
  3. 牵手大众、现代,滴滴绯闻“女友”Aurora无人车启动商业化
  4. 谷歌Launchpad Studio瞄准医疗领域,从早期公司吸取行业经验
  5. eclipse注释中插入当前时间
  6. 用keepalived配置高可用,监控NGINX服务
  7. 如何让Android手机远离间谍软件?看这里
  8. R和Tableau平行坐标图
  9. MySQL之父Michael Wideneus:有自己的电脑,我可以做任何事情
  10. CSS子元素居中(父元素宽高已知,子元素未知)