一般社団法人 全国個人事業主支援協会

COLUMN コラム

SQLを使用してデータを集計することはよくあると思いますが、集計した結果を元にある条件でデータを抜き出す、ということもあると思います。
今回は、ある条件で集計した結果の件数を元に、一定の件数以上のデータを取得するSQLをまとめたいと思います。

★サブクエリを使用して取得する方法

サブクエリを使用して集計しておき、メインのクエリのWhere句に件数での抽出条件を指定する方法です。

select * from ( select syohin_cd, syohin_nm, count(*) as cnt from t_uriage group by syohin_cd ) as tbl1 where tbl1.cnt >= 5;

このSQLは、from句に指定したカッコ内のクエリ(サブクエリ)で売上データを商品コードで集計しています。
その結果をメインクエリのfrom句としてメインクエリのWhere句で件数が5件以上の商品コード、商品名、件数を取得しています。

★Having句を使用して取得する方法

Having句を使用すればGroupBy句の結果に対する抽出条件を指定できます。

select syohin_cd, syohin_nm, count(*) as cnt from t_uriage group by syohin_cd having cnt >= 5;

このSQLでは、商品コードでGroupBy句で集計した結果の件数(cnt)に対して、Having句で件数が5件以上という条件を指定して、
その結果の商品コード、商品名、件数を取得しています。

 

今回は集計後の件数を元にデータを抽出する方法をまとめました。

 

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア