SQL入門②(よく使用する予約語と集計関数について)


はじめに

SQL学習の第二弾になります。
第一回目は以下の記事になるので、そちらもご覧いただけると嬉しいです。
(前回の記事)SQL入門①〜レコードとカラムのデータを取得〜

前回に引き続き、代表的な予約語や集計関数についてまとめていこうと思います。

内容に誤りがありましたらご指摘いただけると嬉しいです。

予約語

GROUP BY

GROUP BYは、何かをまとめたり、集計したい時に使用します。

SELECT まとめたい要素名,COUNT(id) 
AS 集計後の要素名
FROM テーブル名
GROUP BY まとめたい要素名

ポイント
COUNTで要素数を取得、指定(*でも可能)
ASで、集計した後の要素名を定義します。
GROUP BY 〇〇でどんな括りでまとめて欲しいのか指定してあげます。

HAVING

GROUP BYを使用した場合のWHERE句のような役割になります。
WHEREは、条件を指定することが出来ます。

SELECT まとめたい要素名,COUNT(id) 
AS 集計後の要素名
FROM テーブル名
GROUP BY まとめたい要素名
HAVING = "指定したい要素名";

ポイント
HAVING句を使用することで、GROUP BY句で集計した要素の中で条件を指定し、取得することができる。
・例えば、カラムの特定の要素名やidを限定したいときとか。

OFFSET

取得する要素の開始地点を指定することができる。

SELECT *
FROM テーブル名
LIMIT 表示する要素数 OFFSET 開始地点;

ポイント
・同時にLIMITを用いる
・要素数は0から始まっているため、3番目の要素から取得したい場合は、OFFSET 2になる。
OFFSETを使用しなくても、,区切りでも開始地点を指定することができる。

集計関数

MAX

カラムの最大値、最小値を求めることができる。

SELECT MAX(最大値を求めたいカラム名)
FROM テーブル名;

MIN

カラムの最小値を求めることができる。

SELECT MIN(最大値を求めたいカラム名)
FROM テーブル名;

AVG

指定したカラムの平均値を求めることができる。

SELECT AVG(平均値を求めたいカラム名) 
AS 平均値のカラム名を指定
FROM テーブル名
GROUP BY まとめるカラム名

ポイント
ASは、平均値を求めた時のカラム名を任意で指定する
GROUP BYで、どの括りで平均値を出すのかをカラム名で指定する

SUM

指定したカラムの合計値を求めることができる。

SELECT SUM(合計値を求めたいカラム名) 
AS 合計値のカラム名を指定
FROM テーブル名
GROUP BY まとめるカラム名

書き方としては、AVGと同じ

COUNT

指定したカラム数を求めることができる。

SELECT カラム名,COUNT(レコード数) 
AS 任意のカラム名指定
FROM テーブル名
GROUP BY まとめるカラム名

ポイントについては、GROUP BYでの説明と同じ。

まとめ

第一・二弾の記事を参考にすれば必要最低限のカラムやレコード操作はできるようになるかと思います。
時間があれば、次回テーブル操作(JOINなど)をまとめていきたいと思っております。
最後まで読んでいただきありがとうございました。

オススメ学習サイト

技術としては、まだまだですが、こちらのサイトでSQLをひたすら打ちまくる学習方法が一番身につくと思ったので、紹介させて頂きました。
SQL Bolt

参考記事

取得するデータの数と開始位置を指定(LIMIT句, OFFSET句)