【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/

● 本系列題目來源於作者的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

● 題目解答若有不當之處,還望各位朋友批評指正,共同進步