カテゴリごとの数量シェア(全体に対する割合)

上級

問題文

問題

sales テーブルについて、カテゴリ(category)ごとの総数量と、それが**全体の総数量に占める割合(パーセント)**を求め、総数量の高い順に出力してください。 割合は 小数第1位まで(例: 45.1)にしてください。

出力する列は次の3つ、この順序・この列名で出してください:

列名内容
category商品カテゴリ
total_qtyそのカテゴリの総数量
pct全体の総数量に占める割合(%、小数第1位)
ヒントを見る

全体の総数量はグループに依らない1つの値なので、スカラサブクエリ (SELECT SUM(quantity) FROM sales) で求め、それを分母にします。 割合は 100.0 * 部分 / 全体、丸めは ROUND(値, 1) です(整数同士の割り算にならないよう 100.0 と書きます)。

スキーマ

使用データベース:PostgreSQL 16
sales20
idsale_dateregioncategoryquantityunit_price
12024-01-05EastElectronics31200
22024-01-12WestElectronics11500
32024-01-20EastBooks5900
42024-02-03NorthElectronics21100
52024-02-14WestBooks4800
62024-02-22EastToys6400
72024-03-01NorthBooks3950
82024-03-09WestToys7350
92024-03-18EastElectronics21300
102024-03-27NorthToys5420
112024-04-04WestElectronics41250
122024-04-15EastBooks2880
132024-04-23NorthElectronics11400
142024-05-06WestBooks6770
152024-05-19EastToys8360
162024-05-28NorthBooks4910
172024-06-07WestElectronics31180
182024-06-16EastElectronics51220
192024-06-25NorthToys9380
202024-06-30WestToys2340

SQL

⌘⏎ / Ctrl+Enter で実行
エディタを読み込み中…

「実行」を押すと、ここにSQLの実行結果が表示されます。