[Python 100日チャレンジ] Day 77 - SQL集計関数とGROUP BY
SQLのCOUNT、SUM、AVG、GROUP BYを使って、データベース上で集計する方法を学びます。
[Python 100日チャレンジ] Day 77 - SQL集計関数とGROUP BY
集計関数
SQLには、件数、合計、平均などを計算する集計関数があります。
1
2
3
SELECT COUNT(*) FROM orders;
SELECT SUM(amount) FROM orders;
SELECT AVG(amount) FROM orders;
アプリ側ですべての行を取り出して計算するより、データベースで集計したほうが効率的です。
GROUP BY
カテゴリ別に集計するにはGROUP BYを使います。
1
2
3
SELECT product_id, SUM(amount) AS total
FROM orders
GROUP BY product_id;
商品別、月別、ユーザー別などの集計に使えます。
HAVING
集計後の結果に条件を付けたい場合はHAVINGを使います。
1
2
3
4
SELECT product_id, SUM(amount) AS total
FROM orders
GROUP BY product_id
HAVING total >= 10000;
Pythonで集計結果を表示する
1
2
3
4
5
6
7
8
cursor.execute("""
SELECT product_id, SUM(amount)
FROM orders
GROUP BY product_id
""")
for product_id, total in cursor.fetchall():
print(product_id, total)
今日のゴール
SQL集計を使うと、データベース内で必要な数値をまとめられます。COUNT、SUM、AVG、GROUP BYを分析の基本セットとして覚えましょう。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
