SQL練習63 刷題通過的題目排名

2021-10-20 01:23:46 字數 971 閱讀 3139

題目描述

在牛客刷題有乙個通過題目個數的(passing_number)表,id是主鍵,簡化如下:

第1行表示id為1的使用者通過了4個題目;

第6行表示id為6的使用者通過了4個題目;

請你根據上表,輸出通過的題目的排名,通過題目個數相同的,排名相同,此時按照id公升序排列,資料如下:

id為5的使用者通過了5個排名第1,

id為1和id為6的都通過了2個,並列第2

解法

根據題目的要求可以先通過子查詢獲得idt_rank(根據number降序排序獲得的排名)作為r表,再將passing_number表和r表內連線,最後按照number列降序排列。

select p.id, number, t_rank

from passing_number p join

(select id, dense_rank(

)over

(order

by number desc

)as t_rank

from passing_number) r

on p.id = r.id

order

by number desc

演算法練習 刷演算法題時的技巧

變數型別 讀入 輸出 函式reverse 全排列注意 排序最簡潔的寫法是while t t 5 while t 轉換進製 int ans 31 num 0 dowhile sum 0 for int i num 1 i 0 i 資料範圍 2 632 263,2 632 263 1 資料範圍 2 31...

SQl刷題 查詢比之前高的溫度

使用datediff來比較兩個日期型別的值,因此我們可以通過將weather與自身結合,然後使用datediff 比較 select weather.id as id from weather join weather w on datediff weather.date w.date 1and w...

SQL刷題 查詢返回符合條件的結果

方法一 使用where子句和or邏輯判斷 根據定義,滿足下面的其中乙個條件 條件1 面積超過300萬 條件2 人口超過2500萬 先使用下面語句獲得滿足條件1的大國家 select name,population,area from world where area 3000000 然後使用下面的語...