はじめに SQLを利用するときには極力NULLを使わないようにしようと言われることが多いです。 SQLではNULLのデータが入っていることで奇妙な挙動をしてしまうことがあります。 その中の一つでCOUNT関数が存在します。 COUNT関数はその名の通りで条件に合致したデータ数を取得するための関数です。 例えば、条件に合致するデータが3件ある場合は3 と返却を行います。 簡単ですね。 ただ、データ内にNULLが含まれていると、COUNT関数の対象によって、返される値が異なる場合があります。 具体的には以下の通りです。 COUNT(*) NULLのカラムを数える COUNT(col_name) NULLのカラムを数えない なかなかとややこしいですね。。。 実際に例を見てみましょう。 例 以下のようなテーブルを考えます。 col_name
![【SQL】COUNT関数を利用するときはNULLに気をつけよう! - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6e77a904a4feb64c02ba14a1996d3c28f9bfe8e6/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJTkwU1FMJUUzJTgwJTkxQ09VTlQlRTklOTYlQTIlRTYlOTUlQjAlRTMlODIlOTIlRTUlODglQTklRTclOTQlQTglRTMlODElOTklRTMlODIlOEIlRTMlODElQTglRTMlODElOEQlRTMlODElQUZOVUxMJUUzJTgxJUFCJUU2JUIwJTk3JUUzJTgyJTkyJUUzJTgxJUE0JUUzJTgxJTkxJUUzJTgyJTg4JUUzJTgxJTg2JTIxJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz0xZjhjODU4NzVkYmQwYjFkZmE3YjE1NTk2YjJiY2FkZQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBoaWdha2luJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xYmU5MTU5ODY0MzE2MzM4ZWI4NWE5ZWNlNmVmY2IyNg%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D66415fc51c1c0e5264b26e11aca975e3)