uruos.net

はじめての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をコピーしました