集合関数
SQLには次のような集合関数が用意されています。
| 関数 | 説明 |
| MAX(列名) | その列の最大値を求める |
| MIN(列名) | その列の最小値を求める |
| AVG(列名) | その列の平均値を求める |
| SUM(列名) | その列の合計を求める |
| COUNT(*) | 行数を求める |
GROUP BY句を使用することで、同じ値同士のデータをグループ化、そして集合関数を使いグループごとに集計することができます。
本記事では、GROUP BY句を使用したグループ化、そして集合関数を使った集計のやり方について解説しています。
GROUP BY句の使い方
SQLの「GROUP BY」を使用することで、同じ値同士のデータをグループ化できます。
GROUP BY句の基本構文
SELECT 列名 FROM テーブル名 GROUP BY 列名
グループ(GROUP BY)ごとの最大値(MAX)と最小値(MIN)を求める
GROUP BY句を用いてグループ化、そしてMAX関数とMIN関数を使用することで、グループごとの最大値と最小値を求めることができます。
次の例では、product テーブルより カテゴリ (category)でグループ化し、グループごとの"価格の最大値"と"価格の最小値"を求めています。
GROUP BYを用いたMAXとMINの使用例
SELECT
category AS 'カテゴリ'
, MAX(price) AS '最大'
, MIN(price) AS '最小'
FROM
product
GROUP BY
category;
グループ(GROUP BY)ごとの平均値(AVG)を求める
GROUP BY句を用いてグループ化、そしてAVG関数を使用することで、グループごとの平均値を求めることができます。
次の例では、カテゴリ (category)でグループ化し、グループごとの"価格の平均値"を求めています。
GROUP BYを用いたAVGの使用例
SELECT
category AS 'カテゴリ'
, AVG(price) AS '平均値'
FROM
product
GROUP BY
category;
グループ(GROUP BY)ごとの合計(SUM)を求める
GROUP BY句を用いてグループ化、そしてSUM関数を使用することで、グループごとの合計を求めることができます。
次の例では、カテゴリ (category)でグループ化し、グループごとの"価格の合計"を求めています。
GROUP BYを用いたSUMの使用例
SELECT
category AS 'カテゴリ'
, SUM(price) AS '合計'
FROM
product
GROUP BY
category;
グループ(GROUP BY)ごとの行数(COUNT)を求める
GROUP BY句を用いてグループ化、そしてCOUNT関数を使用することで、グループごとの行数を求めることができます。
次の例では、カテゴリ (category)でグループ化し、グループごとの行数を求めています。
GROUP BYを用いたCOUNTの使用例
SELECT
category AS 'カテゴリ'
, COUNT(*) AS '行数'
FROM
product
GROUP BY
category;
学習書の紹介
イラストでそこそこわかるSQL SELECT文と並び替え・集約のきほんのきまで [ 坂下 夕里 ] 価格:2,750円 |
本書は「データをデータベースから取ってくる」操作に特化した、SQLの解説書です。
ビジネスにおいて「データ活用」はますます重要になっています。
いまや、SQLはデータを扱うすべての人にとって身につけておきたい、基本スキルとなりました。
ただ、欲しいデータを取ってくるのにSQLのすべてを知る必要はありません。
本書は、データベースエンジニアではないけれど、「自分の思う通りにデータを取ってきたい」という方にお勧めの1冊です。
図解即戦力 SQLのしくみと書き方がこれ1冊でしっかりわかる本 [ エディフィストラーニング株式会社 高橋栄司 ] 価格:2200円 |
SQLを基礎からわかりやすく解説した図解本です。
エンジニア1年生、IT業界などへの転職・就職を目指す人が、仕事に必要なSQLの用語を一通り学ぶことのできる内容を目指します。
本書では、SQLの基本的な構文とその働きをフルカラーの図解でわかりやすく学ぶことができます。
左ページ文章、右ページ図の見開き2 ページで 1 つの用語や構文を解説しており、動作を試しながら読むのではなく、図を見るだけでSQLの基本を身に付けることができます。
学習書のお求めはこちらから → IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』