mysql中對總成績進行排名 MYSQL成績排名

2021-10-18 21:50:51 字數 1649 閱讀 1065

今天在罈子上看到了,順便寫下來。

有兩種方法:

1、效率不高,因為有子查詢。但是簡潔。而且我對socres表做了index。所以效能上也差不了多少。

mysql> show create table scores\g

*************************** 1. row ***************************

table: scores

create table: create table `scores` (

`id` int(11) not null auto_increment,

`score` int(11) default '0',

primary key (`id`),

key `k_s` (`score`)

) engine=myisam auto_increment=1000001 default charset=utf8 row_format=dynamic

1 row in set (0.00 sec)

mysql> select count(1) from scores;

| count(1) |

|  1000000 |

1 row in set (0.00 sec)

mysql> select id,score,(select count(1) from scores where score>= (select score

from scores where id = 100 order by score desc limit 1)) as rank from scores whe

re id = 100;

| id  | score | rank   |

| 100 |    64 | 370311 |

1 row in set (1.05 sec)

2、分句完成。效率高。

儲存過程:

delimiter $$

drop procedure if exists `test`.`sp_rank`$$

create procedure `test`.`sp_rank`(in str_id int(11))

begin

-- user's score

declare str_score int;

-- user's rank

declare rank int;

select score from scores where id = str_id order by score desc limit 1 into str_score ;

select count(*) from scores where score >=str_score into rank;

-- output

select id,score,rank from scores where id = str_id;

end$$

delimiter ;

mysql> call sp_rank(100);

| id  | score | rank   |

| 100 |    64 | 370311 |

1 row in set (1.02 sec)

query ok, 0 rows affected (1.02 sec)

R Studio中對xls檔案學生總成績統計求和

我們發現這張xls 是沒有學生總分的,在xls檔案中計算學生總分嫌麻煩時,可以考慮在r studio中自定義r script指令碼來解決實際問題 計算每個學生的總成績 xls資料表中的資料 關鍵資訊姓名已進行塗鴉 讀取xls檔案方法及出現亂碼解決方法 傳送門 實現過程 讀取.xls檔案,先找到要讀取...

mysql中對查詢結果進行排序

在進行web開發時,獲取結果排序大部分時候要麼正序排esc,要麼反序排desc,但有時候會出現比較複雜的排序,比如查詢參加培訓的學生所在的學校,部分學生並沒有獲取到其所在的學校資訊,排序的時候需要根據學校學生人數倒排序,同時對於不知道學校的統一記為其他,放在最後面。實現方式之一 select cas...

mysql中實現rownum,對結果進行排序

其中的乙個問題就是但是用rownum函式的時候發現mysql裡面沒有,所以只能用曲線救過的方式如下 select rownum rownum 1 as rownum,user.from user,select rownum 0 r 效果圖 由於是通過曲線救過方式實現,所以肯定沒有oracle自身實現...