フリーランス チャレンジ!!

フリーランス チャレンジ!!

週休4日制に俺はなる!

【DB】Group ByしてCOUNTすると0件が取得できない

f:id:ksakae1216:20170216230243j:plain

 みなさん、コウタロウです!!

 

今日はタイトルについて。

 

 

COUNTで件数が取れない

15年以上、IT業界にいて、何回もSQL書いてたんだけどはじめての事象!

gistdea8b937a45784ea0e2e277e551c9305

 

上記の様にデータベースから欲しいデータをグルーピングして件数を取得する場合、該当するデータが無ければ0件が取得できるかと思いきや、NULLが返ってきた?!

 

Group Byが原因? 

このSQLで"Group By"句を外すと、ちゃんと件数が0件と表示されるんだけど、仕様的に"Group By"は外せない 

 

 ちょっと調べたんだけど、理由はわからない。

"Group By"句でグルーピングするのがダメみたい

 

解決方法

下記サイトで紹介されてます。

SQLの問合せで、COUNTの結果が0件のデータを取得する。 | Wait Cursor

 

副問合せにするだけで、ちゃんと0件が取得できます。

 

最後に

いや~長いこと、仕事してるけど、知らなかったな〜。

 

今まで何度となく、SQL書いてきたけど、グルーピングしてCOUNTで件数取得して0件ってやったことなかったのかな?

 

いくつになっても発見ってあるな〜。