やりたいことは以下のとおりです。ジョブのログを管理するテーブルから、ジョブ名ごとに各ログレベル(CRITICAL, ERROR, WARN)のカウントを集計する方法をメモしておきます。
GROUP BY
とCASE
とSUM
を使う
先にSQLを載せておきます。
まずは、GROUP BY
でジョブ名ごとにグルーピングします。続いて、CASE
式を使って各ログレベルが存在するかどうかの条件を設定し、SUM
で各ログレベルの数をカウントしています。
まとめ
SQLでグループごとに条件を指定してカウントする方法でした。GROUP BY
とCASE
とSUM
を使えばOKです。