免費開始練習
地特三等申論題 110年 [資訊處理] 資料庫應用

第 一 題

📖 題組:
給定一個資料表,PersonIncome,其欄位與資料紀錄如下表,ID 是主鍵,name 是員工姓名,paydate 是員工收到工作費的日期,income 是工作費收入金額。此表總共有 12 筆資料紀錄。請回答下列相關問題: ID name paydate income C1001 王大陸 2008/02/28 25000 C1002 李大喬 2008/03/12 21000 C1003 趙麗生 2008/04/13 27000 C1004 黃球聲 2008/05/15 28000 C1005 王大陸 2009/06/28 27000 C1006 李曉喬 2009/07/12 23000 C1007 趙麗生 2009/08/13 17000 C1008 黃球聲 2010/09/15 25000 C1009 王大陸 2010/10/28 29000 C1010 李大喬 2010/11/12 28000 C1011 趙麗生 2010/12/13 28000 C1012 黃球聲 2011/01/15 27000
📝 此題為申論題,共 6 小題

小題 (一)

請寫出可查出收入金額大於 22000 或小於 26000 的資料紀錄之 SQL 查詢指令。(3 分)

思路引導 VIP

本題考查基本的 SQL 條件查詢語法。只需確定資料表名稱與欲查詢的欄位,並將條件「大於 22000」與「小於 26000」利用邏輯運算子 OR 連接,放入 WHERE 子句即可完成。

🤖
AI 詳解
AI 專屬家教
SELECT * 
FROM PersonIncome 

小題 (二)

請寫出可查出收入金額為 7 之倍數的資料紀錄之 SQL 查詢指令。(3 分)

思路引導 VIP

看到「某數的倍數」等數學條件,應立即聯想到 SQL 中的取餘數(模除)運算子 %MOD() 函數。透過設定條件 income % 7 = 0,搭配基本的 SELECT 語法即可篩選出符合的完整資料紀錄。

🤖
AI 詳解
AI 專屬家教
SELECT *
FROM PersonIncome

小題 (三)

請寫出可查出名字中包含"大"的資料紀錄之 SQL 查詢指令。(2 分)

思路引導 VIP

看到「包含某個字」的查詢需求時,應直覺聯想到 SQL 的字串模糊比對運算子 LIKE,並搭配萬用字元 %(代表任意長度的字串)來包夾目標字元。

🤖
AI 詳解
AI 專屬家教
SELECT * 
FROM PersonIncome 

小題 (四)

請寫出可得到每個人個別的平均收入之 SQL 查詢指令。(3 分)

思路引導 VIP

看到「每個人個別的...」這類統計需求,首先應想到使用 GROUP BY 子句針對人員(如 name 欄位)進行資料分組。接著,針對需要計算平均值的欄位(income),使用 SQL 內建的聚合函數 AVG() 來求出各組的平均收入。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】使用 GROUP BY 子句依姓名分組,並搭配 AVG() 聚合函數計算平均值。 【解答】

小題 (五)

要得到從 2008-05-01 到 2010-12-31 之間每個人個別的收入總額,請寫出對應之 SQL 查詢指令。(4 分)

思路引導 VIP

看到這題,首先確認目標為計算『每個人』的『收入總額』,並具備『特定日期區間』的限制條件。解題思路為:先用 WHERE 與 BETWEEN...AND 篩選出符合日期的資料,再以 GROUP BY 對姓名進行分組,最後透過聚合函數 SUM() 加總收入。

🤖
AI 詳解
AI 專屬家教
SELECT name, SUM(income) AS total_income
FROM PersonIncome

小題 (六)

要查出收入總額大於 70000 的有那些人,請寫出對應之 SQL 查詢指令。(5 分)

思路引導 VIP

看到「總額」,應立刻想到使用聚合函數 SUM();看到「哪些人」,代表需要用 GROUP BY name 進行分組。最後針對分組後的聚合結果進行條件篩選「大於 70000」,必須使用 HAVING 子句而非 WHERE。

🤖
AI 詳解
AI 專屬家教

【解題思路】本題需要將同一員工的收入進行加總並進行條件判斷。需使用 GROUP BYname 進行分組,接著利用聚合函數 SUM(income) 計算總收入,最後使用 HAVING 子句來篩選出總和超過 70000 的員工姓名。 【解答】

升級 VIP 解鎖