電子書籍の厳選無料作品が豊富!

countの使い方で、
select score, count(*) from mydb group by score;
のように使う場合に、()の中に*ではなくて数字を入れても結果は同じでした。
数字を入れたサンプルソースは見たことがないのですが、あのかっこの中は*以外を使うことはありますか?

select score, count(*) from mydb group by score which count(*) > 3;
というのをやりたい場合、正しいSQLはどうなりますか?

A 回答 (3件)

>countの使い方で、


>select score, count(*) from mydb group by score;
>のように使う場合に、()の中に*ではなくて数字を入れても結果は同じでした。

COUNT()は、()に指定された要素の個数を数える関数です。
*でなく、定数をを指定すると、定数の個数を数えるので、結果として
COUNT(*)と同じ結果に成らなければなりません。
通常、COUNT(*)では、レコード件数をカウントとしますが、
他にも、COUNT(フィールド名)のようにして、NULL以外のカウントを
とることが可能です。

>正しいSQLはどうなりますか?

select score, count(*) from mydb group by score having count(*) > 3;
    • good
    • 0

count()内の項目名が主キーの場合、


若干スピードが速くなる、という事を聞きます。
    • good
    • 0

集計結果で絞り込む場合は、having を使います。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!