SQL 中階・視窗函數:排名與最新一筆
這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。
- 01
每股票最新收盤
中等查詢每支股票最新一個交易日的收盤價,欄位依序 stock_id、date、close,依 stock_id 排序。請用
ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...)搭配 CTE 完成。資料表
TaiwanStockPrice(與課程第 6 章的股價表同構):stock_id股票代號(文字)、date交易日(文字,'YYYY-MM-DD')、open、max、min、close(實數)、Trading_Volume成交量(整數);複合主鍵(stock_id, date)。資料含 2330 與 2317 兩檔、2026-01-05 至 2026-01-20 的交易日。平台以 sqlite 執行,支援 window function 與 CTE;MySQL 8.0 以上語法相同。
作答登入後可作答 - 02
第二高收盤價
中等查詢每支股票「第二高」的收盤價,欄位依序 stock_id、close,依 stock_id 排序。請用
DENSE_RANK():若最高價出現在兩天,ROW_NUMBER()會把第二天當成第二名,DENSE_RANK()才會跳到真正的次高價。資料表
TaiwanStockPrice(與課程第 6 章的股價表同構):stock_id股票代號(文字)、date交易日(文字,'YYYY-MM-DD')、open、max、min、close(實數)、Trading_Volume成交量(整數);複合主鍵(stock_id, date)。資料含 2330 與 2317 兩檔、2026-01-05 至 2026-01-20 的交易日。平台以 sqlite 執行,支援 window function 與 CTE;MySQL 8.0 以上語法相同。
作答登入後可作答 - 03
成交量分三組
中等把 2330 的 12 個交易日依成交量由大到小分成 3 組(
NTILE(3)),計算每組的平均成交量,欄位依序 組別、平均成交量,依組別排序。這是 BigQuery 分析常用的分位分組手法。資料表
TaiwanStockPrice(與課程第 6 章的股價表同構):stock_id股票代號(文字)、date交易日(文字,'YYYY-MM-DD')、open、max、min、close(實數)、Trading_Volume成交量(整數);複合主鍵(stock_id, date)。資料含 2330 與 2317 兩檔、2026-01-05 至 2026-01-20 的交易日。平台以 sqlite 執行,支援 window function 與 CTE;MySQL 8.0 以上語法相同。
作答登入後可作答

送件鴿飛出去了