今天在罈子上看到了,順便寫下來。
有兩種方法:
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自身實現...