1. ホーム
  2. sqlite

[解決済み] 標準偏差(SQLite用

2022-02-18 20:20:44

質問内容

SQLiteのドキュメントを検索しても見つからなかったのですが、Googleでも検索してみたところ、いくつか結果が表示されました。

SQLite には標準偏差の関数が組み込まれていますか?

どのように解決するのですか?

を実装しました。 Welfordの方法 (と同じ)。 extension-functions.c をSQLite UDFとして使用することができます。

$db->sqliteCreateAggregate('stdev',
    function (&$context, $row, $data) // step callback
    {
        if (isset($context) !== true) // $context is null at first
        {
            $context = array
            (
                'k' => 0,
                'm' => 0,
                's' => 0,
            );
        }

        if (isset($data) === true) // the standard is non-NULL values only
        {
            $context['s'] += ($data - $context['m']) * ($data - ($context['m'] += ($data - $context['m']) / ++$context['k']));
        }

        return $context;
    },
    function (&$context, $row) // fini callback
    {
        if ($context['k'] > 0) // return NULL if no non-NULL values exist
        {
            return sqrt($context['s'] / $context['k']);
        }

        return null;
    },
1);

それはPHPで( $db はPDOオブジェクトです)しかし、他の言語に移植するのは簡単なはずです。

SQLiteは スースー クールだ。