地特四等申論題
114年
[統計] 資料處理概要
第 一 題
📖 題組:
三、資料庫中有一個資料表 Books,包含以下欄位 BookID(書籍編號)、Title(書名)、Author(作者)、Publisher(出版社)、PubYear(出版年份)、ISBN(國際標準書號),其中 BookID 為資料表的主鍵。
三、資料庫中有一個資料表 Books,包含以下欄位 BookID(書籍編號)、Title(書名)、Author(作者)、Publisher(出版社)、PubYear(出版年份)、ISBN(國際標準書號),其中 BookID 為資料表的主鍵。
📝 此題為申論題,共 3 小題
小題 (一)
請寫一個 SQL 查詢,尋找張曼娟於 2020 年出版的書籍名稱與出版社。(10 分)
思路引導 VIP
這是一題基礎的 SQL 語法題。首先確定要選取的欄位 (SELECT):書名 (Title)、出版社 (Publisher)。接著確定來源資料表 (FROM):Books。最後設定過濾條件 (WHERE):作者 (Author) = '張曼娟' 且 出版年份 (PubYear) = 2020。
小題 (二)
請說明下列 SQL 語法之查詢過濾條件與輸出欄位為何?(10 分)
SELECT Title, Author, Publisher
FROM Books
WHERE PubYear IN
(SELECT PubYear
FROM Books
WHERE Author = '村上春樹' AND Publisher = '時報出版公司');
SELECT Title, Author, Publisher
FROM Books
WHERE PubYear IN
(SELECT PubYear
FROM Books
WHERE Author = '村上春樹' AND Publisher = '時報出版公司');
思路引導 VIP
這是一題要求「解釋 SQL 語法意涵」的題目,其中包含了一個「子查詢 (Subquery)」。分析時應由內而外:先解釋括號內的子查詢找出了什麼(找出村上春樹在時報出版公司出書的『所有年份』),再解釋外層主查詢根據這個年份條件做了什麼過濾(找出在這些『年份』出版的所有書籍),最後指出輸出了哪些欄位。
小題 (三)
請以 JOIN 指令,利用自我關連的概念,改寫上面的查詢。(20 分)
思路引導 VIP
題目要求將原本的 Subquery 改寫為 JOIN (且特別指明是 Self-Join 自我關連)。Self-Join 代表要將同一個資料表 (Books) 視為兩個不同的實體來對接,通常透過取別名 (Alias) 來區分。我們需要一個 b1 來作為主查詢的輸出源,一個 b2 來作為篩選條件(尋找村上春樹與時報出版的年份)。關連的條件(ON)就是兩者的出版年份(PubYear)相同。