Microsoft ドキュメント
Microsoft Access SQL と ANSI SQL の比較
代替として副問合せである、いわゆる『インラインビュー』を使用
2つ目と3つ目が『インラインビュー』ですが、これは Oracle では正式に使用される呼び名です。
select count(distinct 商品分類) from 商品マスタ
;
select count(商品分類) from (select distinct 商品分類 from 商品マスタ) A
;
select count(*) from (select distinct 商品分類 from 商品マスタ) A
;
select '----------','----------','----------','----------'
;
select * from コード名称マスタ
一つ目の実行が、Microsoft Access SQL で失敗します( MySQL や SQLServer等 では成功します )
Syntax error (missing operator) in query expression 'count(distinct 商品分類)'
ですから、distinct を使ったSQL 全体を括弧で囲んで、from の後ろに置いて別名を付けて実行します。
NULL を含むデータ
ここでは、商品分類に NULL を含む場合があるので、集計関数を商品分類に使用した場合はカウントから除外されます。但し、行全体の数を取る count(*) では含まれます。
SQLの窓のコマンドエリアでのセミコロン
act ボタンで実行した場合、セミコロンは SQL の実行単位の区切りとみなされ、全ての実行を行って下段に全て表示します
MySQL
SQL Express
SQLの窓 Build C++ のダウンロード