由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教: SQL 店面题
相关主题
SQL query 求解!请教SQL面试题
一道sql请教个SQL的问题
leetcode Nth Highest Salary 谁做出来了?[电话面试] 非死不可 2
SQL 面试题,请高手指点再请教SQL问题
初级SQL问题这个SQL面试题怎么做
SQL面题,大家练练吧发个FB电面SQL题目攒个人品希望H1B抽中
Bank Financial Developer PositionSQL find distinct values in large table (转载)
问个sql小提。大牛勿进SQL run a stored procedure by fetching from a cursor row by (转载)
相关话题的讨论汇总
话题: score话题: select话题: rank话题: sql话题: desc
进入JobHunting版参与讨论
1 (共1页)
w**a
发帖数: 487
1
+-----+--------+-------+
| ID | NAME | SCORE |
+-----+--------+-------+
| 100 | sam | 3.60 |
| 101 | David | 3.65 |
| 102 | Rachel | 4.00 |
| 103 | Amanda | 3.80 |
| 104 | Mike | 4.00 |
| 105 | Amy | 3.65 |
| 106 | John | 3.40 |
| 107 | May | 3.75 |
| 108 | Tony | 3.20 |
+-----+--------+-------+
9 rows in set (0.00 sec)
上面是一个简单的成绩表,要求给出按分数的排名,排名不能跳过相同的分数,比如:
4.00 1
4.00 1
3.80 2
3.75 3
3.65 4
3.65 4
请问,有什么好办法?
这个题算容易,还是难啊?有多少人在电话上可以当时在电话上做出来啊?
b******e
发帖数: 671
2
可以这样做。
先把DISTINCT的成绩找出来,再上RANK(), 再和原来的成绩列JOIN.
w**a
发帖数: 487
3
如果只RANK() distinct的成绩,最后JOIN时,那些重复的成绩怎么得到排名呢?

【在 b******e 的大作中提到】
: 可以这样做。
: 先把DISTINCT的成绩找出来,再上RANK(), 再和原来的成绩列JOIN.

x****k
发帖数: 34
4
select
scores.score, r
from
scores
join
(
select
score,
rank() over (order by score desc) as r
from (
select
distinct score
from scores
) s
) s1
on scores.score = s1.score
order by scores.score desc;
b******e
发帖数: 671
5
最后的JOIN就是为了得到重复的啊。 1:n的JION.

【在 w**a 的大作中提到】
: 如果只RANK() distinct的成绩,最后JOIN时,那些重复的成绩怎么得到排名呢?
l****e
发帖数: 17
6
try dense_rank ()
x****k
发帖数: 34
7
dense_rank is the best solution
1 (共1页)
进入JobHunting版参与讨论
相关主题
SQL run a stored procedure by fetching from a cursor row by (转载)初级SQL问题
keep group of values of SQL procedure in one table (转载)SQL面题,大家练练吧
SQL select one value column for each distinct value another colBank Financial Developer Position
微软面经问个sql小提。大牛勿进
SQL query 求解!请教SQL面试题
一道sql请教个SQL的问题
leetcode Nth Highest Salary 谁做出来了?[电话面试] 非死不可 2
SQL 面试题,请高手指点再请教SQL问题
相关话题的讨论汇总
话题: score话题: select话题: rank话题: sql话题: desc