ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

SQL to AsakusaFW:集約

2019-12-16 21:35:33 | PG(分散処理)

Asakusa Framework Advent Calendar 2019の16日目、SQLをAsakusaFWに変換するポイントについてです。

SELECT文は集約(SUMやCOUNT等)することが出来ます。
これは、AsakusaFWではSummarize演算子が該当します。
しかし、ここでもNULLの挙動は異なります。SQLのCOUNT(値)では、値がNULLだとカウントの対象外、SUM(値)では値がNULLだと合算の対象外です。が、Summarize演算子ではcountはnullでも関係なくカウントされ、sumはnullだとNullPointerExceptionが発生します。

このため、Summarize演算子を使わず、Fold演算子でnullチェックを行いつつカウント・集計を行う必要があります。
もしくは、NULLを0扱いしてよいのであれば、事前にUpdate演算子でnullを0に更新しておき、Summarize演算子に渡すということも出来ます。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする