【SQLite】数学関数を使う

SQLiteでは通常,三角関数とかのいわゆる数学関数が使えない.そのせいで細かい解析には向いてなかったりする.
そこで,SQLite.orgのContributed Filesからextension-functions.cを使って、三角関数や対数関数などの計算ができるようSQL関数を拡張してみる.
extension-functions.cで使用可能となる関数は以下の通り.

Math: acos, asin, atan, atn2, atan2, acosh, asinh, atanh, difference, degrees, radians, cos, sin, tan, cot, cosh, sinh, tanh, coth, exp, log, log10, power, sign, sqrt, square, ceil, floor, pi.
String: replicate, charindex, leftstr, rightstr, ltrim, rtrim, trim, replace, reverse, proper, padl, padr, padc, strfilter.
Aggregate: stdev, variance, mode, median, lower_quartile, upper_quartile.

https://www.sqlite.org/contrib

Shared Libraryの作成

まず,以下をダウンロードする

sqlite-amalgamation.zipを解凍したら,そこにextension-funxtions.cをコピーして,以下のコマンドを実行する.

clang -shared -o libsqlitefunctions.so extension-functions.c

libsqlitefunctions.soというファイルが生成されていたら成功.

Shared Libraryを使用する

libsqlitefunctions.soを読み込むことで、以後、前述の関数が使用できるようになる.ただし一度対話モードを終了させると再度読み込みが必要.

// どちらでもOK
sqlite> select load_extension("libsqlitefunctions.so");
sqlite> .load libsqlitefunctions.so;

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です