SQL 初階・子查詢與 LEFT JOIN
這一頁是題幹試閱;登入/註冊後每題可以在瀏覽器裡執行、對答案,第一次交對 +10 XP。
- 01
每種類最貴
容易查詢每個種類(catalog)中價格最高的食物,欄位依序 catalog、name、price,依 catalog 排序。提示:用相關子查詢比對「同種類的最高價」。
資料表
food:id編號(文字,主鍵)、name名稱(文字)、expiredate到期日(文字,格式 'YYYY-MM-DD')、placeid產地編號(文字)、price價格(整數)、catalog種類(文字)。資料表
place:id產地編號(文字,主鍵)、name產地名稱(文字)。作答登入後可作答 - 02
沒有食物的產地
容易找出沒有任何食物的產地,輸出 place.id 與 place.name。用 LEFT JOIN 配合 IS NULL(或 NOT EXISTS)。
資料表
food:id編號(文字,主鍵)、name名稱(文字)、expiredate到期日(文字,格式 'YYYY-MM-DD')、placeid產地編號(文字)、price價格(整數)、catalog種類(文字)。資料表
place:id產地編號(文字,主鍵)、name產地名稱(文字)。作答登入後可作答 - 03
每產地食物數含零
中等統計每個產地的食物數量,沒有食物的產地也要列出(數量 0)。欄位依序 place.id、place.name、數量,依 place.id 排序。
資料表
food:id編號(文字,主鍵)、name名稱(文字)、expiredate到期日(文字,格式 'YYYY-MM-DD')、placeid產地編號(文字)、price價格(整數)、catalog種類(文字)。資料表
place:id產地編號(文字,主鍵)、name產地名稱(文字)。作答登入後可作答 - 04
到期狀態分組
中等以 2019-01-01 為基準日,把食物分成三種狀態:到期日早於 2019-01-01 →
已過期;2019 年內到期 →今年到期;其餘 →未到期。統計每種狀態的食物數,欄位依序 狀態、數量,依「各組最早到期日」由早到晚排序(也就是 已過期、今年到期、未到期 的順序)。資料表
food:id編號(文字,主鍵)、name名稱(文字)、expiredate到期日(文字,格式 'YYYY-MM-DD')、placeid產地編號(文字)、price價格(整數)、catalog種類(文字)。資料表
place:id產地編號(文字,主鍵)、name產地名稱(文字)。作答登入後可作答

送件鴿飛出去了