🍣
データサイエンス100本ノック~SQL~ちょこっとメモ
最近業務でSQLを扱うため勉強目的で「データサイエンス100本ノック」に挑戦し始めました。
挑戦した問題で気になったSQLなどをご紹介するだけの記事でス。
ちなみに、私のSQLレベルは下記Udemyを視聴した程度のド素人です。
データサイエンス100本ノック環境構築
環境構築については下記をご参照ください。
私は自前のWindows上で動かしています。
ちょこっとメモ
RANK関数
お題
売上金額(amount)が高い順にランク付けし、10件表示させる。ただし、売上金額が等しい場合は同一順位とすること
select
customer_id,
amount,
rank() over(order by amount desc)
from
receipt
limit 10;
ROW_NUMBER関数
お題
売上金額(amount)が高い順にランク付けし、10件表示させる。ただし、売上金額が等しい場合でも別順位とすること
select
customer_id,
amount,
row_number() over(order by amount desc)
from
receipt
limit 10;
PERCENTILE_CONT関数
お題
店舗コード(store_cd)ごとに売上金額(amount)の中央値を計算し、降順でTOP5を表示せよ。
select
store_cd,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY amount) as amount
from
receipt
group by store_cd
order by amount desc
limit 5;
MODE関数
お題
店舗コード(store_cd)ごとに売上金額(amount)の最頻値を計算し、10件表示せよ。
select
store_cd,
mode() WITHIN GROUP (ORDER BY amount) as amount_mode
from
receipt group by store_cd
limit 10;
Discussion