• ベストアンサー

初心者、SQLで分からない問題があります

SQL Plus初心者です。 現在勉強している本の問題で以下のような問題があります。 【ユーザテーブル(usr)から都道府県別のユーザ数を求めてみましょう。なお、取り出す列の別名は、それぞれ「都道府県名」「ユーザ数」とします。】 そして、この解答を見ると select prefecture 都道府県, count(*) ユーザ数 from usr group by prefecture ; となっています。 私が分からないのは【count(*)】の【*】のところです。 なぜアスタリスクにするのでしょうか? count(prefecture)ではダメなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.1

prefectureには必ず値がある場合にはcount(prefecture)ですね。でもまれにそのつもりでも値が入って無くグループ指定もして無い項目を対象にする人が居て、その場合はひどい間違えが発生する可能性もありcount(*) が一般的とされてます。 この例題の場合はcount(prefecture)が正解でしょう。大きいテーブルだとcount(*) はパフォーマンスが落ちますので。

関連するQ&A