人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQL文で SELECT COUNT(DISTINCT mycolumn) FROM... のように COUNTの中で DISTINCT を使用可能なのですが、これは、ANSI標準ですか?

●質問者: pena2
●カテゴリ:コンピュータ
✍キーワード:ANSI SELECT SQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● くいっぱ
●20ポイント

http://www.intersystems.co.jp/support/csp/rsql/rsql_select.asp

標準ではないようです。

掲題URLをdistinctで検索してください。

…というかよりにもよって、キャシェーのページがヒットしてしまった。。。。。

◎質問者からの返答

>>ANSI SQL は単独の SELECT 文内での列名と集約関数の組み合わせを許可しませんが

の部分のことでしたら、その下のSQL例に対しての説明ですね。通常は GROUP BY しなければならないところを、省略して記述できる、という拡張だと思います。


2 ● tomsk_7
●30ポイント

http://dev.mysql.com/doc/mysql/ja/Extensions_to_ANSI.html

Search Results: Extensions_to_ANSI.html

なかなかぴったりのページがないですね。

「1.8.3 SQL-92 標準に対する MySQL 拡張機能」

の中に

「以下は、MySQL 拡張機能の一覧です。」

として

「list に複数の要素がある COUNT(DISTINCT list) の使用。 」

とありますから、裏を返せば非標準のようです。ハズしていたらポイントは結構です。

◎質問者からの返答

ありがとうございます。

>>list に複数の要素がある COUNT(DISTINCT list) の使用。

が ANSI拡張ということで、つまり、「listに1つしか要素がないものは標準構文である」とも考えられますね。

具体的には COUNT(DISTINCT col1) は普通にANSI標準だけれども、COUNT(DISTINCT col1, col2) というのがMySQL拡張である、と。

なんだか納得いたしました。どうもありがとうございました。

この質問で新たに「ANSI標準がどこにある?」の疑問が出てきたので、別質問として登録させていただきます。よかったらまたそちらでもおつきあいください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ