免費開始練習
moea_joint_essay 111年 [統計資訊] 資料庫及資料探勘、程式設計

第 二 題

📖 題組:
某關聯資料庫(Relational Database)包含下列兩個資料表(Tables),有底線者為主鍵: 教師(Teacher)資料表 教師代碼(Tid) 教師姓名(TName) 系所代號(DeptNo) 性別(Sex) 到校年(ArrivalYear) 身分別(Separate) 薪資(Salary) 註:身分別(Separate)欄位的值為字元 Y 時表示專任,N 時表示兼任。 系所(Department)資料表 系所代號(DeptNo) 系所中文名稱(DeptName) 所在建築(Building) 針對下列問題,請分別寫出 SQL 指令以進行查詢:(3 題,每題 6 分,共 18 分)
📝 此題為申論題,共 3 小題

小題 (二)

列出「企管系」教師最高薪資與最低薪資的差距,差距欄位另取名為 DiffSalary。
題目圖片

思路引導 VIP

需要 JOIN Teacher 和 Department 表,條件是 DeptName = '企管系',使用 MAX() - MIN() 計算差距。

🤖
AI 詳解
AI 專屬家教

SELECT (MAX(T.Salary) - MIN(T.Salary)) AS DiffSalary FROM Teacher T JOIN Department D ON T.DeptNo = D.DeptNo

小題 (一)

對所有專任教師,依性別分別列出平均薪資,平均薪資欄位另取名為 AvgSalary。
題目圖片

思路引導 VIP

使用 SELECT, GROUP BY, 以及 WHERE 條件篩選專任教師 (Separate = 'Y'),並用 AVG() 計算平均薪資。

🤖
AI 詳解
AI 專屬家教

SELECT Sex, AVG(Salary) AS AvgSalary FROM Teacher WHERE Separate = 'Y'

小題 (三)

列出到校 10 年(含)以上的教師。
題目圖片

思路引導 VIP

計算到校年數,可使用現在的年份減去 ArrivalYear,條件大於等於 10。

🤖
AI 詳解
AI 專屬家教

SELECT * FROM Teacher WHERE (YEAR(GETDATE()) - ArrivalYear) >= 10;

📝 SQL 多表關聯彙總
💡 運用 JOIN 連結表格並透過彙總函數計算特定欄位之極端值差距

🔗 SQL 查詢處理邏輯鏈

  1. 1 JOIN 連結 — 依 DeptNo 將教師與系所兩表橫向合併
  2. 2 WHERE 篩選 — 從合併後的資料過濾出「企管系」的紀錄
  3. 3 彙總運算 — 計算篩選結果中 Salary 的最大與最小值
  4. 4 別名輸出 — 將兩值相減並命名為 DiffSalary 呈現
🔄 延伸學習:掌握 SQL 執行順序 (FROM > JOIN > WHERE > SELECT) 對除錯至關重要
🧠 記憶技巧:先連表、再篩選、極值相減換名稱
⚠️ 常見陷阱:在運算後忘記使用 AS 賦予欄位別名,或在 JOIN 時未明確指定關聯條件
INNER JOIN 語法 GROUP BY 分組統計 SQL 執行順序

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

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

🏷️ 相關主題

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