本サイトにはプロモーションが含まれています
使い方
日別に売上を集計しレポートを作成するSQLを紹介します。
ordersテーブル
order_id | order_date | user_id | amount |
---|---|---|---|
1 | 2021-04-01 | 864 | 14900 |
2 | 2021-04-01 | 299 | 19100 |
3 | 2021-04-01 | 933 | 9800 |
4 | 2021-04-01 | 383 | 6500 |
5 | 2021-04-01 | 226 | 4300 |
6 | 2021-04-01 | 851 | 17300 |
7 | 2021-04-01 | 682 | 22400 |
8 | 2021-04-01 | 221 | 1800 |
9 | 2021-04-01 | 899 | 15200 |
10 | 2021-04-01 | 151 | 17500 |
11 | 2021-04-02 | 718 | 1400 |
12 | 2021-04-02 | 241 | 26900 |
… |
クエリ
-- 日別の売り上げを集計する
SELECT
order_date,
SUM(amount) total_amount,
ROUND(AVG(amount), 1) avg_amount,
COUNT(order_date) purchase_cnt,
FROM
`dataset.orders`
GROUP BY
order_date
ORDER BY
order_date
結果
order_date | total_amount | avg_amount | purchase_cnt |
---|---|---|---|
2021-04-01 | 128800 | 12,880.0 | 10 |
2021-04-02 | 157800 | 17,533.3 | 9 |
2021-04-03 | 109100 | 15,585.7 | 7 |
2021-04-04 | 203100 | 18,463.6 | 11 |
2021-04-05 | 234100 | 14,631.3 | 16 |
2021-04-06 | 253500 | 14,911.8 | 17 |
2021-04-07 | 233600 | 16,685.7 | 14 |
2021-04-08 | 62200 | 12,440.0 | 5 |
2021-04-09 | 154400 | 11,876.9 | 13 |
2021-04-10 | 146500 | 16,277.8 | 9 |
2021-04-11 | 111900 | 13,987.5 | 8 |
解説
以下の手順で取得しています。
- GROUP BY order_date で日ごとに集計
- 日ごとの売上合計 を SUM(amount) で集計
- 日ごとの平均購入額 を AVG(amount) で集計
- 小数第2位以下を ROUND(平均購入額, 1) で 四捨五入
関連リンク
より実務的なクエリを身につけるには「ビッグデータ分析・活用のためのSQLレシピ」がおすすめです。
本サイトにはプロモーションが含まれています