アプリ版:「スタンプのみでお礼する」機能のリリースについて

すいません。教えてください。
emp表からJobのデータが何種類あるか出力したいとき、

・ select count(distinct job) from emp;

はいいのに、

・ select count(job) from emp group by job;

がエラーになる理由を知っている方、教えてください。

A 回答 (3件)

group by句はグループ化したい列に適用します。


ご質問の内容でSQL文を作成すると
select job,count(*) job_count from emp group by job;
となります。

結果は
job     job_count
PRESIDENT      1
MANAGER       10
CLEAK        20
の様になります(数字は適当です)。
    • good
    • 0
この回答へのお礼

なるほど、group by句で指定した内容と、select句で選択した
内容が同じでないからエラーになるんですね。
よくわかりました。ありがとうございました。

お礼日時:2001/12/27 11:36

No.2のteppyです


すいません間違えました
>select job, count(job) from emp group by job, count(job);

select job, count(job) from emp group by job;

No.1のsghさんのSQL文が正しいです
    • good
    • 0
この回答へのお礼

よくわかりました。
ありがとうございました。

お礼日時:2001/12/27 11:38

group by句は出力したい項目をグループ化するところです


出力されない項目をグループ化することは出来ませんので、エラーがでます

>select count(job) from emp group by job;

select count(job) from emp group by count(job);
とすれば、正常に出力されるでしょう

>emp表からJobのデータが何種類あるか出力したいとき、
だったら、下記のほうが宜しいかと...
select job, count(job) from emp group by job, count(job);
    • good
    • 0

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