はじめに

Vertica拡張SQLのEvent Based Windowsを使用すると、指定列の値が条件を満たす場合にカウントアップする列を追加できます。

CONDITIONAL_CHANGE_EVENT

CONDITIONAL_CHANGE_EVENTを使用すると、指定列の値に変化があった場合に、カウントアップする列を追加できます。
例えば、株価を一定間隔で記録するテーブルがあった場合、株価が変動したタイミングでカウントアップする列を追加できます。

コマンド構文


利用例

株価を一定間隔で記録するTickstore3テーブルを例にします。
本例では、XYZ株の株価が変動した場合にカウントアップするcce列を追加します。

株価を一定間隔で記録するTickstore3テーブル


CONDITIONAL_CHANGE_EVENTを使用すると、bid列(株価)に変動があった場合のみ、cce列の値がカウントアップされます。


CONDITIONAL_TRUE_EVENT

CONDITIONAL_TRUE_EVENTを使用すると、指定列の値が評価式の条件を満たした場合に、カウントアップする列を追加できます。
例えば、株価を一定間隔で記録するテーブルがあった場合、株価がある値を超えていればカウントアップする列を追加できます。

コマンド構文


利用例

株価を一定間隔で記録するTickstore3テーブルを例にします。
本例では、XYZ株の株価が10.5を超える場合にカウントアップするcte列を追加します。

株価を一定間隔で記録するTickstore3テーブル


CONDITIONAL_TRUE_EVENTを使用すると、bid列(株価)の値が10.5を超える場合のみ、cte列の値がカウントアップされます。


またCONDITIONAL_TRUE_EVENTの評価式でLAG関数を使用することで、n個前の値と比較することも可能です。
以下の例ではbid列(株価)の値が前回の値を下回る場合のみ、cte列の値がカウントアップされます。


検証バージョンについて

この記事の内容はVertica 8.1で確認しています。