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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/05/21 11:45:17
  • 終了:--

回答(2件)

id:kuippa No.1

くいっぱ回答回数1030ベストアンサー獲得回数132004/05/21 11:54:45

ポイント20pt

標準ではないようです。

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

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

id:pena2

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

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

2004/05/21 12:15:55
id:tomsk_7 No.2

tomsk_7回答回数68ベストアンサー獲得回数02004/05/21 12:35:31

ポイント30pt

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) の使用。 」

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

id:pena2

ありがとうございます。

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

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

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

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

 

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

2004/05/21 12:52:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません