問題文
問題
sales テーブルについて、カテゴリ(category)ごとの総数量と、それが**全体の総数量に占める割合(パーセント)**を求め、総数量の高い順に出力してください。
割合は 小数第1位まで(例: 45.1)にしてください。
出力する列は次の3つ、この順序・この列名で出してください:
| 列名 | 内容 |
|---|---|
category | 商品カテゴリ |
total_qty | そのカテゴリの総数量 |
pct | 全体の総数量に占める割合(%、小数第1位) |
ヒントを見る
全体の総数量はグループに依らない1つの値なので、スカラサブクエリ
(SELECT SUM(quantity) FROM sales) で求め、それを分母にします。
割合は 100.0 * 部分 / 全体、丸めは ROUND(値, 1) です(整数同士の割り算にならないよう 100.0 と書きます)。
スキーマ
使用データベース:PostgreSQL 16sales20 行
| id | sale_date | region | category | quantity | unit_price |
|---|---|---|---|---|---|
| 1 | 2024-01-05 | East | Electronics | 3 | 1200 |
| 2 | 2024-01-12 | West | Electronics | 1 | 1500 |
| 3 | 2024-01-20 | East | Books | 5 | 900 |
| 4 | 2024-02-03 | North | Electronics | 2 | 1100 |
| 5 | 2024-02-14 | West | Books | 4 | 800 |
| 6 | 2024-02-22 | East | Toys | 6 | 400 |
| 7 | 2024-03-01 | North | Books | 3 | 950 |
| 8 | 2024-03-09 | West | Toys | 7 | 350 |
| 9 | 2024-03-18 | East | Electronics | 2 | 1300 |
| 10 | 2024-03-27 | North | Toys | 5 | 420 |
| 11 | 2024-04-04 | West | Electronics | 4 | 1250 |
| 12 | 2024-04-15 | East | Books | 2 | 880 |
| 13 | 2024-04-23 | North | Electronics | 1 | 1400 |
| 14 | 2024-05-06 | West | Books | 6 | 770 |
| 15 | 2024-05-19 | East | Toys | 8 | 360 |
| 16 | 2024-05-28 | North | Books | 4 | 910 |
| 17 | 2024-06-07 | West | Electronics | 3 | 1180 |
| 18 | 2024-06-16 | East | Electronics | 5 | 1220 |
| 19 | 2024-06-25 | North | Toys | 9 | 380 |
| 20 | 2024-06-30 | West | Toys | 2 | 340 |
SQL
⌘⏎ / Ctrl+Enter で実行「実行」を押すと、ここにSQLの実行結果が表示されます。