阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 一般警察特種考試_三等_警察資訊管理人員:資料庫應用#101699
科目:公職◆資料庫應用
年份:110年
排序:0

題組內容

四、假設現有如下個人實聯制登記紀錄的關連式資料庫,請使用SQL 回答相關的子問題。
 Place(placeID, placeName, countyCity, district, address)PK:placeID
 Person(mobile, name, telecomProvider)PK:(mobile)
 EnterRecord(placeID, mobile, date, time
 PK:(placeID, mobile, date, time)
 FK:placeID ref. Place(placeID)
FK:mobile ref. Person(mobile)

申論題內容

(三)請列出臺北市萬華區內"公有 XX 市場",2021/05/15~2021/05/28 進出人員 的手機號碼及姓名,並依手機登錄進出次數,由多至少排列顯示。 (5 分)

詳解 (共 2 筆)

詳解 提供者:hchungw
SELECT 
    e.mobile,
    p.name,
    COUNT(*) AS visit_count
FROM 
    EnterRecord e
JOIN 
    Person p ON e.mobile = p.mobile
JOIN 
    Place pl ON e.placeID = pl.placeID
WHERE 
    pl.countyCity = '台北市'
    AND pl.district = '萬華區'
    AND pl.placeName LIKE '公有%XX%市場'
    AND e.date BETWEEN '2021-05-15' AND '2021-05-28'
GROUP BY 
    e.mobile, 
    p.name
ORDER BY 
    visit_count DESC;
這個查詢語句的解釋如下:
JOIN 子句:將 EnterRecord 表和 Person 表根據 mobile 進行連接,將 EnterRecord 表和 Place 表根據 placeID 進行連接,以便獲取所需的所有資訊。
WHERE 子句:篩選 EnterRecord 表中的記錄,符合下列條件:
地區為台北市萬華區 (pl.countyCity = '台北市' AND pl.district = '萬華區')。
公共場所名稱包含 "公有 XX 市場" (pl.placeName LIKE '公有%XX%市場')。
日期在 2021/05/15 到 2021/05/28 之間 (e.date BETWEEN '2021-05-15' AND '2021-05-28')。
GROUP BY 子句:根據手機號碼和姓名進行分組,以便計算每個人進出次數。
SELECT 子句:選擇手機號碼 (e.mobile)、姓名 (p.name) 和每組中的進出次數總和(COUNT(*))。
ORDER BY 子句:按進出次數總和降序排列結果。
這樣就可以列出符合條件的進出人員的手機號碼及姓名,並按登錄進出次數由多至少排列顯示。
 
 
 
 
詳解 提供者:邊工作邊唸書
SELECT P.mobile,P.name,COUNT(*) AS 登入次數 FROM Person P,Place PL,EnterRecord ER
WHERE PL.placeID=ER.placeID AND 
P.mobile=ER.mobile AND ER.date BETWEEN 
‘20210515’ AND ‘20210528’ AND 
PL.countyCity=‘臺北市’ AND PL.district=‘萬華區’
AND PL.placeName=‘公有XX市場’
GROUP BY P.mobile,P.name ORDER BY 登入次數 DESC;