floatingdaysさんのSQLの集計関数で NULLを含む列を集計する場合の注意点
というエントリーで、MySQLとPostgreSQLの検証結果があったので、oracleについて検証してみました。
実行したsql文は↓
SELECT SUM(t.v) -- => 15 |
先に結論からいうと、すべて同じになりました。
SUM()やMIN()、MAX()では問題ないが、COUNT()やAVG()ではNULLの行の分も含めて計算したい場合に困る。
via:SQLの集計関数で NULLを含む列を集計する場合の注意点
禿同
よってoracleの場合だとこうなる。
SELECT COUNT(NVL(t.v,0)) -- => 4 |
oracleの場合は、nullの場合は、nvl関数を使って、0とすれば問題は解決します。
是非、ご参考までに。
0 コメント:
コメントを投稿