4 分數排名

2022-06-17 10:36:09 字數 938 閱讀 5991

簡單分析:

<1> group by s1.id 是因為用到了聚合函式,需要將每乙個個體分為一組,不然將所有的人視為一組進行 count

<2> order by s1.score desc 是將查詢後的結果進行排序,按照分數降序排序

<3> where 是乙個篩選條件,滿足條件的記錄將進行後面的處理(count聚合)

<4> 這裡為什麼 rank,要打上單引號,因為在新版中,rank 是乙個關鍵字。

<5> 任意乙個 s1.score ,都將與 s2.score進行對比,並進行一次 count 操作

反思:<1> 對中間過程不清晰,尤其是查詢時生成中間表的原理。

<2> 對下面錯誤不知道原因在哪。

事實上,輸出結果是按照測試用例中的 score 順序排列的,但在**中寫的是 按照 'rank' 公升序排列,這裡面的實現細節不是很清楚。

零碎學習的感覺非常煩惱, sql和 mysql 又在語法上有所差異,實現原理破破碎碎不連貫。

178 分數排名

編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 例如,根據上述給定的 scores 表,你的查詢應該返回 按分數從高到低排列 例如,根據上述給定的 scores 表,你的查詢...

87 (178)分數排名

編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定的 s...

178 分數排名

編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定的 s...