【DB筆試面試399】現需要查詢參加了課程ID為C10的考試,並且分數排在前10名的學生,以下哪項語句能夠實現此功能()
- 2019 年 10 月 11 日
- 筆記
題目
在Oracle中,給定如下STUDENTS表的結構:
SID NUMBER NOT NULL,Primary Key
SNAME VARCHAR2(30)
COURSE_ID VARCHAR2(10) NOT NULL
MARKS NUMBER
現需要查詢參加了課程ID為C10的考試,並且分數排在前10名的學生,以下哪項語句能夠實現此功能()
A、SELECT SID,MARKS,ROWNUM "RANK" FROM STUDENTS
WHERE ROWNUM<=10 AND COURSE_ID='C10' ORDER BY MARKS DESC;
B、SELECT SID,MARKS,ROWNUM "RANK" FROM STUDENTS
WHERE ROWNUM<=10 AND COURSE_ID='C10'ORDER BY MARKS;
C、SELECT SID,MARKS,ROWNUM "RANK" FROM (SELECT SID ,MARKS FROM STUDENTS
WHERE ROWNUM<=10 AND COURSE_ID='C10') ORDER BY MARKS DESC;
D、SELECT SID,MARKS,ROWNUM "RANK" FROM (SELECT SID ,MARKS FROM STUDENTS
WHERE COURSE_ID='C10' ORDER BY MARKS DESC) WHERE ROWNUM<=10;
A
答案
答案:D。
本題考察TOP-N查詢。在資料庫查詢中,「Top-N分析」也稱「Top-N查詢」,就是獲取某一數據集合(表或查詢結果集)中的前N條記錄,例如,考試成績前三名的學生資訊、銷量前十名的暢銷書資訊、從當前時刻開始最早離港的五次航班資訊等,實際應用中Top-N分析經常會用到。以下幾點內容是Top-N的性質:
(1)Top-N分析就是查詢前幾名的意思。
(2)Top-N分析通過ROWNUM實現。
(3)Top-N分析中必須使用ORDER BY排序子句。
(4)Top-N分析中通常會有內建視圖,一般的方法是先對內建視圖的某一列或某些列排序,然後對此內建視圖使用ROWNUM取前多少行數據。
所以,本題的答案為D。
About Me:小麥苗
● 本文作者:小麥苗,只專註於資料庫的技術,更注重技術的運用
● 作者部落格地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列題目來源於作者的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解
● 版權所有,歡迎分享本文,轉載請保留出處
● 題目解答若有不當之處,還望各位朋友批評指正,共同進步