はじめてのSQL-SQLで良く使う関数

この記事では、SQLで使えるいろいろな関数について説明します。
前回の記事で紹介した集約関数以外にも 、SQL では様々な関数がありデータの加工などができるようになっています。

関数の種類は非常にたくさんあるのですが、関数を4つほど紹介します。まずはこちらのSUBSTR(サブストリング) 関数を紹介します。

今回も以前の記事と同じテーブルを対象にしてSQLを実行します。

  • Purchase_log
  • product
  • user

テーブルの準備方法は以前の記事をご覧ください!

目次

SUBSTR(サブストリング) 関数

SUBSTR 関数は文字列を切り出す関数になります。

書式/コード

SELECT
 SUBSTR(user_id, 4, 5) 
FROM
 purchase_log

引数の1つ目は文字列、2つ目は切り出す最初の 文字の位置、3つ目は切り出す文字の最後の位置 です。

この場合はuser_id の4番目から5番目を切り出したいということになります。
結果は下記になります。

SUBSTR(user_id4,5)
01
02
02
04
03
99

LENGTH(レングス)関数

次はLENGTH(レングス)関数です。
引数に指定した文字列の文字の長さを返します。

SELECT
 LENGTH(NAME) 
FROM
 product 
;

結果は下記になります。

LENGTH(name)
3
8
6
5
2
11

ROUND(ラウンド)関数

次はROUND(ラウンド)関数です。

ROUND 関数は小数点以下の数値を四捨五入します。

 SELECT
 sex,
 COUNT(*),
 SUM(age),
 AVG(age),
 ROUND(AVG(age)) 
FROM
 user 
GROUP BY
 sex 
;

結果は下記になります。

SEXCOUNT(*)SUM(age)AVG(age)ROUND(AVG(age))
女性38929.66666630.0
男性310735.66666636.0

COALESCE(コアレス) 関数

最後に COALESCE(コアレス) 関数を紹介します。
COALESCE 関数は引数の1つ目に指定した値が NULLつまりデータが無い場合、2つ目の引数に指定した値を表示するという関数になります。

SELECT
 purchase_log.*,
 COALESCE(user.id, 'データ無し'),
 COALESCE(user.sex, 'データ無し'),
 COALESCE(user.age, 'データ無し') 
FROM
 purchase_log
 LEFT JOIN user ON
 purchase_log.user_id = user.id 
;

こちらのSQLは LEFT JOIN の記事で紹介した SQL で、データがなくNoneが表示された場合がありました。

結果は下記になります。

purchase_idproduct_iduser_idquantityidsexage
2021-5-201uid0120uid01男性19
2021-5-202uid022uid02女性35
2021-5-203uid022uid02女性35
2021-5-214uid0410uid04女性22
2021-5-225uid0310uid03男性57
2021-5-226uid992データ無しデータ無しデータ無し

今回いくつかの関数を紹介しましたが、他にも様々な関数があります。

ここで注意点ですが、関数はデータベースごとに使えるものが異なっています。
どのような関数が使えるのかは、データベース仕様確認する必要があります。
今回利用しているデータベースである SQL ライトの場合、英語ですが公式サイトなどで確認できます。
自分がやりたいことが関数でできのるか、こういった公式サイトやブログなど技術記事を調べてみましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次