資料庫面試題:
其他關聯表這裡不一一寫出,僅寫出關鍵表(score)成績表
成績記錄id
scoreid
學生id
userid
課程id
scoureid
成績score
現需要求出各科成績前三名的學生和成績,與相應的課程。
實現思路
用課程id自關聯一次成績表,如果相應課程成績高則排名越高。
select * from `score` a where
(select count(*) from `score` b where a.`sourceid`= b.`sourceid` and b.`score`>a.`score`)<3 -- 即成績前3
-- and (select count(*) from `score` b where a.`sourceid`= b.`sourceid` and b.`score`>a.`score`)>1-- 即成績為第2名以後
order by sourceid,score desc;
顯示結果:
又需要的可以嘗試一下,網上找了很多解決辦法,要麼使用高階函式,要麼邏輯很複雜,以下是建表語句
create table `score` (
`scoreid` int(11) not null auto_increment,
`sourceid` int(11) default null,
`userid` int(11) default null,
`score` int(11) default null,
primary key (`scoreid`)
) engine=innodb auto_increment=17 default charset=utf8;
相應資料sql:
insert into `score`(`scoreid`,`sourceid`,`userid`,`score`) values (1,1,1,60),(2,2,1,80),(3,3,1,95),(4,1,2,75),(5,2,2,85),(6,3,2,90),(7,4,1,89),(8,4,2,88),(9,1,3,78),(10,2,3,87),(11,3,3,98),(12,4,3,76),(13,1,4,67),(14,2,4,76),(15,3,4,88),(16,4,4,77);
sql查詢出各科成績最好的學生資訊
1.相關資料表 score表 user 表 sql語句如下 複製 如下 www.cppcns.com 查詢出各科成績最好的學生資訊 自連線 select top 1 from score b where b.s程式設計客棧corename 數學 order by b.score desc selec...
找出第3名學生的成績
題目出處 桂電oj,description 計算機創新工程訓練基地進行完招新開始後,想知道本次考試第3名學生的成績是多少?如果最高分有好多個學生,則相同成績的學生都算第一名 同理,如果第二高分的有多個學生,都算第二名。當然這是簡單題,請你快速編乙個程式找到第3名的成績。input 輸入 輸入有一組,...
習題 22 找出第3名學生的成績
習題 22 找出第3名學生的成績 acm大學剛考完大學英語4級考試,想知道全校第3名學生的成績是多少?如果最高分有好多個學生,則相同成績的學生都算第一名 同理,如果第二高分的有多個學生,都算第二名。當然這是簡單題,請你快速編乙個程式找到第3名的成績。輸入 輸入有多組,每組有2行,第一行是學生人數n ...