【SQL】正負を判定するSIGN関数の使い方わかりやすく解説する!

Web技術
スポンサーリンク

PostgreSQLのSIGNの使い方は?

SIGN関数ってどんなときに使うの?

わかりやすく教えてほしい!

こういった疑問にこたえます。

この記事を読めば
  • SIGN関数を使って引数の正負判定が行えるようになる
  • SIGN関数の使い道がわかる

エンジニアの僕がわかりやすく解説します。

SIGN関数の使い方

SIGN関数は引数の正負を判定する関数です。

引数が正なら1、引数が0なら0、引数が負なら-1を返します。

構文はこんなかんじ。

SIGN(引数)

例えば、次のようなsalesテーブルがあったとします。

yearq1q2q3q4
20188200830078008300
20198500850080008100
202092008100
salesテーブル

ここで平均売り上げを計算したいとします。2020年だけデータが二つなので2で割る必要があります。

こういった場合にSIGN関数を使えると便利です。

SELECT
  year
  ,(COALESCE(q1,0) + COALESCE(q2,0) + COALESCE(q3) + COALESCE(q4,0))
  / (SIGN(COALESCE(q1,0)) + SIGN(COALESCE(q2,0))
    + SIGN(COALESCE(q3,0)) + SIGN(COALESCE(q4,0)))
    AS average
  FROM sales
ORDER BY year;

実行結果

yearaverage
20188150
20198275
20208650
UNION実行結果

COALESCE関数でNULLを0に置き換え、SIGN関数で正負判定し、正の場合だけ+1するように記述します。

知っておくとデータ分析に役立つのでぜひ覚えておきましょう!

SIGN関数の使い方まとめ

解説の内容をまとめます。

  • SIGN関数は正負の判定を行う関数
  • 引数が正の場合1、0の場合は0、負の場合は-1を返す

以上、お疲れ様でした。

コメント

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