問題文
問題
customers(顧客)と orders(注文)があります。orders.customer_id は customers.id を参照します。
すべての顧客について、顧客名と注文金額を出力してください。注文が1件も無い顧客も、金額を NULL として1行出力してください。
並び順は、顧客名の昇順、同じ顧客の中では金額の昇順とします。
出力する列は次の2つ、この順序・この列名で出してください:
| 列名 | 内容 |
|---|---|
customer_name | 顧客の名前(customers.name) |
amount | 注文金額(注文が無ければ NULL) |
ヒントを見る
普通の JOIN(内部結合)だと、注文の無い顧客は消えてしまいます。
左側(customers)を必ず残すには LEFT JOIN を使います。
スキーマ
使用データベース:PostgreSQL 16customers4 行
| id | name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
| 4 | Dave |
products5 行
| id | name | category | price |
|---|---|---|---|
| 1 | Keyboard | Peripheral | 1200 |
| 2 | Mouse | Peripheral | 800 |
| 3 | Monitor | Display | 1500 |
| 4 | Cable | Accessory | 640 |
| 5 | Webcam | Peripheral | 970 |
orders5 行
| id | customer_id | product_id | amount |
|---|---|---|---|
| 1 | 1 | 1 | 1200 |
| 2 | 2 | 2 | 800 |
| 3 | 1 | 3 | 1500 |
| 4 | 3 | 4 | 640 |
| 5 | 2 | 5 | 970 |
SQL
⌘⏎ / Ctrl+Enter で実行「実行」を押すと、ここにSQLの実行結果が表示されます。