0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQLの様々な関数

Posted at

プログラミングの勉強日記

2020年6月15日 Progate Lv.107
SQLⅡ

DISTINCT

 検索結果から重複するデータを除くことができる。DISTINCT (カラム名)として使う。SELECTで取得するカラムに使用することで重複を省いたデータを取得できる。

SELECt DISTINCT (name) FROM purchases;

四則演算

 足す(+)、引く(-)、かける(*)、割る(/)ことができる。四則演算をSELECTで取得するカラムに使用することで計算後のデータを取得できる。

SELECT name, price*1.1 FROM purchases;

SUM関数

 数値の合計を計算するときに使う。SELECTで取得するカラム名を使用することで集計結果を取得できる。WHEREとも併用できる。(今回の例では、田中太郎のレコードを検索して、検索したレコードの数値の合計を計算している。)

SELECT SUM(price) FROM purchases;
SELECT SUM(price) FROM purchases WHERE name="田中太郎";

AVG関数

 平均を計算する。SELECTで取得するカラムに用いることで計算結果を取得できる。WHEREと併用することもできる。(今回の例では、田中太郎のレコードを検索して、検索したレコードの数値の平均を計算している。)

SELECT AVG(price) FROM purchases;
SELECT AVG(price) FROM purchases WHERE name="田中太郎";

COUNT関数

 指定したカラムのデータの合計数を計算する。COUNT関数でカラム名を指定した場合、nullになっているデータの数は計算されない。nullのデータを含めてすべてのデータの数を計算したい場合は、COUNT関数で*(すべてのカラム)を指定する。WHEREを併用することもできる。(今回の例では、田中太郎のレコードを検索して、検索したレコードの数を計算している。)

SELECT COUNT(*) FROM purchases;
SELECT COUNT(*) FROM purchases WHERE name="田中太郎";

MAX/MIN関数

 MAXを使うと指定したカラムのデータの中から最大のデータを取得することができる。MINを使うと最小のデータを取得できる。他の集計関数と同様にSELECTで取得したカラムに使用できる。WHEREと併用することもできる。(今回の例では、田中太郎のレコードを検索して、検索していたレコードの中でも最も大きい数値を取得している。)

SELECT MAX(price) FROM purchases;
SELECT MAX(price) FROM purchases WHERE name="田中太郎";

GROUP BY

 データをグループ化できる。集計関数を取得するFROMの後ろにGROUP BY カラム名を追加する。
 GROUP BYを用いる場合、SELECTで使えるのはGROUP BYに指定しているカラム名と集計関数のみ。
 複数のカラム名を適用させるときは、カラム名同士を,(コンマ)でつなげる。その場合、データの組み合わせの数だけグループができ、集計関数によって各グループごとにデータを集計できる。また、WHEREと併用することもできる。その場合は、WHEREの後に書く。

SELECT SUM(price), purchased_at 
FROM purchases 
GROUP BY purchased_at;

HAVING

 GROUP BYでグループ化したデータをさらに絞り込みたいときに使う。GROUP BY カラム名 HAVING 条件とする。

  1. 検索 WHERE
  2. グループ化 GROUP BY
  3. 関数 COUNT, SUM, AVG, MAX, MIN
  4. HAVING
     
     この順番で処理される。WHEREはグループ化される前のテーブルの全体を検索対象とするが、HAVINGはグループ化されたデータを検索対象とする。なので、条件文で使うカラムは必ずグループ化されたテーブルのカラム名を使う。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?