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

データサイエンス

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

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

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

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

  • Purchase_log
  • product
  • user

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

JOIN

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
 ;

結果は下記になります。

SEX COUNT(*) SUM(age) AVG(age) ROUND(AVG(age))
女性 3 89 29.666666 30.0
男性 3 107 35.666666 36.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_id product_id user_id quantity id sex age
2021-5-20 1 uid01 20 uid01 男性 19
2021-5-20 2 uid02 2 uid02 女性 35
2021-5-20 3 uid02 2 uid02 女性 35
2021-5-21 4 uid04 10 uid04 女性 22
2021-5-22 5 uid03 10 uid03 男性 57
2021-5-22 6 uid99 2 データ無し データ無し データ無し

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

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

タイトルとURLをコピーしました