免費開始練習
國營聯招申論題 108年 [統計資訊] 資料庫及資料探勘、程式設計

第 三 題

📖 題組:
有一船員資料表 Sailors 如下,試回答下列問題:(20 分)
📝 此題為申論題,共 4 小題

小題 (三)

請寫出 SQL指令以查詢:最年長船員的姓名與年齡。(5 分)
題目圖片

思路引導 VIP

利用子查詢找出最大年齡,或者利用 ORDER BY 搭配 LIMIT/TOP。

🤖
AI 詳解
AI 專屬家教

SELECT sname, age FROM Sailors WHERE age = (SELECT MAX(age) FROM Sailors);

小題 (一)

下列 SQL 指令之查詢結果為何?(5 分)
SELECT S.rating, MIN(S.age) AS min_age
FROM Sailors S
WHERE S.age >= 18
GROUP BY S.rating
HAVING COUNT (*) > 1;
題目圖片

思路引導 VIP

模擬執行 SQL 語法:先過濾 age >= 18,再依 rating 分群,最後保留筆數 > 1 的群組,並選出該群的 rating 和最低 age。

🤖
AI 詳解
AI 專屬家教
  1. WHERE S.age >= 18:過濾後剩下的資料列有: 22 Dustin 7 45.0 31 Lubber 8 55.5

小題 (二)

請寫出 SQL指令以查詢:年滿 20歲船員之平均評價等第與平均年齡。(5分)
題目圖片

思路引導 VIP

需要使用 AVG 函數,並加上 WHERE 條件篩選。

🤖
AI 詳解
AI 專屬家教

SELECT AVG(rating), AVG(age) FROM Sailors WHERE age >= 20;

小題 (四)

請寫出 SQL指令以查詢:各評價等第中,平均年齡最低者及其平均年齡。(5 分)
題目圖片

思路引導 VIP

先以 GROUP BY 算出各評價等第的平均年齡,再將結果排序取出最低的一筆,或使用 MIN 及子查詢。

🤖
AI 詳解
AI 專屬家教

使用子查詢方式: SELECT rating, AVG(age) AS avg_age FROM Sailors

📝 SQL 子查詢與聚合函數
💡 利用子查詢先求出特定極值,再作為外層查詢的篩選條件。

🔗 嵌套子查詢執行邏輯

  1. 1 內層子查詢 — SELECT MAX(age) 算出表中最年長的數值
  2. ↓
  3. 2 數值傳遞 — 將最大值(例如 55.5)回傳給外部 WHERE
  4. ↓
  5. 3 外層過濾 — 篩選出 age 等於該最大值的船員紀錄
  6. ↓
  7. 4 結果投影 — SELECT 顯示對應的 sname 與 age 欄位
🔄 延伸學習:若有多位船員同為最年長,此語法會同時列出所有人。
🧠 記憶技巧:VIP 會員可查看這題的記憶口訣與速記法
⚠️ 常見陷阱:VIP 會員可查看這題最常被誘答的陷阱整理
GROUP BY 分組聚合 ORDER BY 與 LIMIT 結合用法 HAVING 子句篩選

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

關聯式資料庫查詢語言與 SQL 實務應用
查看更多「[統計資訊] 資料庫及資料探勘、程式設計」的主題分類考古題