mysql排名問題

由于mysql不支持rank函數(shù)摹察,所以mysql的排名只能通過其他方式實現(xiàn)豁生。
創(chuàng)建表并插入記錄:

#創(chuàng)建成績表
CREATE TABLE `sc` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Sid` int(11) DEFAULT NULL,
  `Cid` int(11) DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=97 DEFAULT CHARSET=utf8;

#插入表記錄
INSERT INTO `sc` VALUES ('1', '1007', '2', '71');
INSERT INTO `sc` VALUES ('2', '1006', '2', '84');
INSERT INTO `sc` VALUES ('3', '1005', '2', '56');
INSERT INTO `sc` VALUES ('4', '1004', '2', '77');
INSERT INTO `sc` VALUES ('5', '1003', '2', '67');
INSERT INTO `sc` VALUES ('6', '1002', '2', '86');
INSERT INTO `sc` VALUES ('7', '1001', '2', '69');
INSERT INTO `sc` VALUES ('8', '1007', '1', '62');
INSERT INTO `sc` VALUES ('9', '1006', '1', '93');
INSERT INTO `sc` VALUES ('10', '1005', '1', '58');
INSERT INTO `sc` VALUES ('11', '1004', '1', '78');
INSERT INTO `sc` VALUES ('12', '1003', '1', '30');
INSERT INTO `sc` VALUES ('13', '1002', '1', '80');
INSERT INTO `sc` VALUES ('14', '1001', '1', '89');
INSERT INTO `sc` VALUES ('15', '1001', '3', '82');
INSERT INTO `sc` VALUES ('16', '1002', '3', '85');
INSERT INTO `sc` VALUES ('17', '1003', '3', '32');
INSERT INTO `sc` VALUES ('18', '1004', '3', '73');
INSERT INTO `sc` VALUES ('19', '1005', '3', '54');
INSERT INTO `sc` VALUES ('20', '1006', '3', '87');
INSERT INTO `sc` VALUES ('21', '1007', '3', '77');
INSERT INTO `sc` VALUES ('22', '1008', '3', '94');
INSERT INTO `sc` VALUES ('23', '1001', '4', '39');
INSERT INTO `sc` VALUES ('24', '1002', '4', '80');
INSERT INTO `sc` VALUES ('25', '1003', '4', '82');
INSERT INTO `sc` VALUES ('26', '1004', '4', '88');
INSERT INTO `sc` VALUES ('27', '1005', '4', '38');
INSERT INTO `sc` VALUES ('28', '1006', '4', '59');
INSERT INTO `sc` VALUES ('29', '1007', '4', '42');
INSERT INTO `sc` VALUES ('30', '1008', '4', '64');
INSERT INTO `sc` VALUES ('31', '1001', '5', '89');
INSERT INTO `sc` VALUES ('32', '1002', '5', '70');
INSERT INTO `sc` VALUES ('33', '1003', '5', '60');
INSERT INTO `sc` VALUES ('34', '1004', '5', '58');
INSERT INTO `sc` VALUES ('35', '1005', '5', '38');
INSERT INTO `sc` VALUES ('36', '1006', '5', '92');
INSERT INTO `sc` VALUES ('37', '1007', '5', '73');
INSERT INTO `sc` VALUES ('38', '1008', '5', '64');
INSERT INTO `sc` VALUES ('39', '1001', '6', '49');
INSERT INTO `sc` VALUES ('40', '1002', '6', '90');
INSERT INTO `sc` VALUES ('41', '1003', '6', '70');
INSERT INTO `sc` VALUES ('42', '1004', '6', '48');
INSERT INTO `sc` VALUES ('43', '1005', '6', '58');
INSERT INTO `sc` VALUES ('44', '1006', '6', '59');
INSERT INTO `sc` VALUES ('45', '1007', '6', '72');
INSERT INTO `sc` VALUES ('46', '1008', '6', '74');
INSERT INTO `sc` VALUES ('47', '1001', '7', '49');
INSERT INTO `sc` VALUES ('48', '1002', '7', '50');
INSERT INTO `sc` VALUES ('49', '1003', '7', '70');
INSERT INTO `sc` VALUES ('50', '1004', '7', '88');
INSERT INTO `sc` VALUES ('51', '1005', '7', '48');
INSERT INTO `sc` VALUES ('52', '1006', '7', '99');
INSERT INTO `sc` VALUES ('53', '1007', '7', '82');
INSERT INTO `sc` VALUES ('93', '1009', '1', '98');
INSERT INTO `sc` VALUES ('94', '1009', '3', '78');
INSERT INTO `sc` VALUES ('95', '1009', '5', '100');
INSERT INTO `sc` VALUES ('96', '1009', '7', '87');

1组哩、查詢每門功課成績最好的前兩名

select * from sc  a where 
(select count(*) from sc b where a.cid=b.cid
and a.score<=b.score)<=2
ORDER BY a.cid;

2、查詢每門功課成績最差的前兩名

select * from sc  a where 
(select count(*) from sc b where a.cid=b.cid
and a.score>=b.score)<=2
ORDER BY a.cid;

3督笆、case when 函數(shù)的用法

select s1.cid as '課程ID', cname as '課程名稱',
sum(case when s1.score BETWEEN 85 and 100 then 1 else 0 end)
as "[100-85]",
sum(case  when s1.score BETWEEN 70 and 85 then 1 else 0 end)
as "[70-85]",
sum(case   when s1.score BETWEEN 60 and 70 then 1 else 0 end)
as "[60-70]",
sum(case   when s1.score BETWEEN 0 and 60 then 1 else 0 end)
as "[0-60]"
from sc as s1 inner join course as c 
on s1.cid=c.Cid
group by s1.cid;

4芦昔、查詢不同課程成績相同的同學的學號,課程號娃肿,學生成績——
(這個地方用到自鏈接的方式)

select a.sid,a.cid,a.score from sc as a 
inner join sc as b 
on a.sid =b.sid 
where a.cid<>b.cid
and a.score = b.score
ORDER BY a.score;

5咕缎、查詢同名同姓學生名單,并統(tǒng)計同名人數(shù)
剛拿到這個題會沒思路料扰,在這里不妨換個思路試試凭豪,同名同姓即意味著sname的個數(shù)是大于1的,沿著這個思路考慮晒杈,
只要統(tǒng)計出來sname大于1的學生名字和個數(shù)就行了嫂伞。

select sname ,count(sname) from student  
GROUP BY sname having count(sname)>1;

6、查詢 001課程比002課程成績高的所有學生的學號
這里因為要查詢的是001課程中的學號拯钻,所以分布考慮:
第一步:分別查詢001帖努、002的成績
第二部:組合 最終結(jié)果從001得來的所以直接從001表中查詢

select a.sid from 
(select sid,score from sc where cid =001) as a
inner JOIN
(select sid,score from sc where cid =002) as b
on a.sid=b.sid where a.score>b.score;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市粪般,隨后出現(xiàn)的幾起案子拼余,更是在濱河造成了極大的恐慌,老刑警劉巖亩歹,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匙监,死亡現(xiàn)場離奇詭異,居然都是意外死亡小作,警方通過查閱死者的電腦和手機亭姥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躲惰,“玉大人致份,你說我怎么就攤上這事〈〔Γ” “怎么了氮块?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诡宗。 經(jīng)常有香客問我滔蝉,道長,這世上最難降的妖魔是什么塔沃? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任蝠引,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘螃概。我一直安慰自己矫夯,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布吊洼。 她就那樣靜靜地躺著训貌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冒窍。 梳的紋絲不亂的頭發(fā)上递沪,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音综液,去河邊找鬼款慨。 笑死,一個胖子當著我的面吹牛谬莹,可吹牛的內(nèi)容都是我干的檩奠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼届良,長吁一口氣:“原來是場噩夢啊……” “哼笆凌!你這毒婦竟也來了圣猎?” 一聲冷哼從身側(cè)響起士葫,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎送悔,沒想到半個月后慢显,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡欠啤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年荚藻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洁段。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡应狱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祠丝,到底是詐尸還是另有隱情疾呻,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布写半,位于F島的核電站岸蜗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏叠蝇。R本人自食惡果不足惜璃岳,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铃慷,春花似錦单芜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赁温,卻和暖如春坛怪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背股囊。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工袜匿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稚疹。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓居灯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親内狗。 傳聞我的和親對象是個殘疾皇子怪嫌,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 今天看到一位朋友寫的mysql筆記總結(jié),覺得寫的很詳細很用心柳沙,這里轉(zhuǎn)載一下岩灭,供大家參考下,也希望大家能關注他原文地...
    信仰與初衷閱讀 4,725評論 0 30
  • 什么是數(shù)據(jù)庫赂鲤? 數(shù)據(jù)庫是存儲數(shù)據(jù)的集合的單獨的應用程序噪径。每個數(shù)據(jù)庫具有一個或多個不同的API,用于創(chuàng)建数初,訪問找爱,管理...
    chen_000閱讀 4,032評論 0 19
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常泡孩。 O...
    我想起個好名字閱讀 5,256評論 0 9
  • MySQL技術(shù)內(nèi)幕:SQL編程 姜承堯 第1章 SQL編程 >> B是由MySQL創(chuàng)始人之一Monty分支的一個版...
    沉默劍士閱讀 2,412評論 0 3
  • 真正的平靜车摄,不是避開車馬喧囂,而是在心中修籬種菊仑鸥。---林徽茵 喜歡藍色和紫色的結(jié)合吮播,今天臨摹一幅《藍莓》。 總感...
    納蘭若非閱讀 1,259評論 1 7