阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 中華郵政股份有限公司_職階人員甄試試題_營運職/資料庫管理:關聯式資料庫系統技術#106508
科目:關聯式資料庫系統技術
年份:110年
排序:0

題組內容

第二題:
有一關聯式資料庫包含下列資料表(table):
學生(學號、學生姓名、班級編號),共 50 筆資料
老師(老師編號、老師姓名、班級編號),共 8 筆資料
班級(班級編號、班級名稱),共 6 筆資料
期末考試(學號、科目、成績),共 20 筆資料
有底線的欄位表示為該資料表的主鍵(Primary key),請回答下列問題:

申論題內容

(一)寫出 SQL 語法查詢出每個班級的老師姓名與學生人數。【10 分】

詳解 (共 1 筆)

詳解 提供者:hchungw
SELECT 
    c.班級名稱,
    t.老師姓名,
    COUNT(s.學號) AS 學生人數
FROM 
    班級 c
JOIN 
    老師 t ON c.班級編號 = t.班級編號
LEFT JOIN 
    學生 s ON c.班級編號 = s.班級編號
GROUP BY 
    c.班級名稱, t.老師姓名;
解釋
選取列:
c.班級名稱:選取班級名稱。
t.老師姓名:選取老師姓名。
COUNT(s.學號) AS 學生人數:計算每個班級中的學生數量。
連接表格:
JOIN 班級 c ON c.班級編號 = t.班級編號:將班級表 c 和老師表 t 進行連接,根據班級編號匹配班級和老師。
LEFT JOIN 學生 s ON c.班級編號 = s.班級編號:使用左連接將班級表 c 和學生表 s 連接,根據班級編號匹配學生和班級,即使某些班級沒有學生也會顯示出來。
分組:
GROUP BY c.班級名稱, t.老師姓名:根據班級名稱和老師姓名進行分組,以計算每個班級的學生人數。
這樣的查詢語法會返回每個班級的老師姓名及該班級的學生人數。