- ベストアンサー
初心者、SQLで分からない問題があります
SQL Plus初心者です。 現在勉強している本の問題で以下のような問題があります。 【ユーザテーブル(usr)から都道府県別のユーザ数を求めてみましょう。なお、取り出す列の別名は、それぞれ「都道府県名」「ユーザ数」とします。】 そして、この解答を見ると select prefecture 都道府県, count(*) ユーザ数 from usr group by prefecture ; となっています。 私が分からないのは【count(*)】の【*】のところです。 なぜアスタリスクにするのでしょうか? count(prefecture)ではダメなのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
prefectureには必ず値がある場合にはcount(prefecture)ですね。でもまれにそのつもりでも値が入って無くグループ指定もして無い項目を対象にする人が居て、その場合はひどい間違えが発生する可能性もありcount(*) が一般的とされてます。 この例題の場合はcount(prefecture)が正解でしょう。大きいテーブルだとcount(*) はパフォーマンスが落ちますので。