ゆる~く覚えるSQL入門:GROUP BYでグループ化されたデータをさらに絞り込む【HAVING】

  • 2020年9月23日
  • IT, SQL
  • 14view
IT

今回の記事ではSQLでGROUP BYでグループ化されたデータをさらに絞り込む方法を学習します。

SQL文入門:パン屋さんの販売履歴テーブル(sales_history)で考えてみよう

テーブル名:sales_history

id name price purchased_day
1 メロンパン 250 2020-09-21
2 カツサンド 400 2020-09-21
3 メロンパン 250 2020-09-22
4 カレーパン 300 2020-09-23
5 メロンパン 250 2020-09-24
6 メロンパン 250 2020-09-24
7 カツサンド 400 2020-09-24

今回は販売履歴(sales_history)テーブルを使って重複を除いて検索する方法を学習しましょう!

【HAVING】GROUP BYでグループ化されたデータをさらに絞り込む

SQLではGROUP BYでグループ化されたデータをさらに絞り込むことができ、その際はGROUP BYの後にHAVINGを記載します

では、パン屋さんの販売履歴テーブル(sales_history)から日付ごとの売上が300円以上のデータを検索してみましょう。

select sum(price), purchased_day
from sales_history
group by purchased_day
having sum(price) >= 300
;

↓↓↓↓実行すると

・実行結果

sum(price) purchased_day
650 2020-09-21
300 2020-09-23
900 2020-09-24

日付ごとの売上が300円以上のデータを検索できました。

まとめ

今回の記事をまとめると

  • GROUP BYでグループ化されたデータをさらに絞り込む場合はGROUP BYの後にHAVINGを使う
最新情報をチェックしよう!