okinawa

IT勉強メモ

【SQL】特性関数とは

SQLの特性関数について

特性関数とは、入力項がある集合に含まれるかどうかを調べるための関数で、含まれるなら 1 を、含まれないなら 0 を返すものです²。例えば、次のようなテーブルがあるとします。

id name gender
1 A M
2 B F
3 C M

このテーブルからgenderカラムがMであるレコードの数を取得するには、次のようなSQL文を実行します。

SELECT SUM(CASE WHEN gender = 'M' THEN 1 ELSE 0 END) FROM table;

すると、CASE文が特性関数として動作して、genderカラムがMであれば1を、そうでなければ0を返します。その結果をSUM関数で合計することで、genderカラムがMであるレコードの数(2)が取得できます²。

このように、特性関数は集合に対する条件判定や集計に便利な関数です。

参考

ソース: Bing との会話 2023/2/25
(1) 開始日と終了日をまとめる. http://mickindex.sakura.ne.jp/database/celko/celko_se.html アクセス日時 2023/2/25.
(2) 開始日と終了日をまとめる. https://bing.com/search?q=sql+%e7%89%b9%e6%80%a7%e9%96%a2%e6%95%b0 アクセス日時 2023/2/25.
(3) 特性関数 (確率論) - Wikipedia. https://ja.wikipedia.org/wiki/%E7%89%B9%E6%80%A7%E9%96%A2%E6%95%B0_(%E7%A2%BA%E7%8E%87%E8%AB%96) アクセス日時 2023/2/25.
(4) Microsoft SQL データベース関数とは - SQL Server. https://learn.microsoft.com/ja-jp/sql/t-sql/functions/functions?view=sql-server-ver16 アクセス日時 2023/2/25.
(5) 第11回 SQL流集合操作(4) 集合の性質を調べる | gihyo.jp. https://gihyo.jp/dev/serial/01/sql_academy/0011 アクセス日時 2023/2/25.

今回はBing AIさんに聞いたことをブログに転記しました。