問題文
問題
EC のデータです。テーブルは4つ:
customers(顧客)orders(注文ヘッダ。どの顧客がいつ注文したか)order_items(注文明細。どの注文でどの商品をいくつ買ったか)products(商品。単価priceを持つ)
注文をしたことがある顧客について、顧客ごとの合計購入額を求め、高い順に出力してください。
合計購入額は、その顧客の全明細の price × quantity の合計です。
出力する列は次の2つ、この順序・この列名で出してください:
| 列名 | 内容 |
|---|---|
customer_name | 顧客名(customers.name) |
total_spent | その顧客の合計購入額 |
ヒントを見る
4テーブルを順につなぎます: customers→orders→order_items→products。
金額は SUM(p.price * oi.quantity)。顧客ごとに GROUP BY します。
スキーマ
使用データベース:PostgreSQL 16customers5 行
| id | name | city |
|---|---|---|
| 1 | Alice | Tokyo |
| 2 | Bob | Osaka |
| 3 | Carol | Tokyo |
| 4 | Dave | Nagoya |
| 5 | Eve | Osaka |
products6 行
| id | name | category | price |
|---|---|---|---|
| 1 | Keyboard | Peripheral | 3000 |
| 2 | Mouse | Peripheral | 1500 |
| 3 | Monitor | Display | 20000 |
| 4 | Cable | Accessory | 500 |
| 5 | Webcam | Peripheral | 4000 |
| 6 | Desk | Furniture | 15000 |
orders6 行
| id | customer_id | order_date |
|---|---|---|
| 1 | 1 | 2024-01-10 |
| 2 | 1 | 2024-02-15 |
| 3 | 2 | 2024-01-20 |
| 4 | 3 | 2024-03-05 |
| 5 | 2 | 2024-03-22 |
| 6 | 4 | 2024-02-28 |
order_items11 行
| id | order_id | product_id | quantity |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| 2 | 1 | 2 | 2 |
| 3 | 2 | 3 | 1 |
| 4 | 3 | 2 | 1 |
| 5 | 3 | 4 | 3 |
| 6 | 4 | 1 | 2 |
| 7 | 4 | 5 | 1 |
| 8 | 5 | 3 | 1 |
| 9 | 5 | 4 | 2 |
| 10 | 6 | 2 | 1 |
| 11 | 6 | 5 | 2 |
SQL
⌘⏎ / Ctrl+Enter で実行「実行」を押すと、ここにSQLの実行結果が表示されます。