標準ではないようです。
掲題URLをdistinctで検索してください。
…というかよりにもよって、キャシェーのページがヒットしてしまった。。。。。
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標準がどこにある?」の疑問が出てきたので、別質問として登録させていただきます。よかったらまたそちらでもおつきあいください。
>>ANSI SQL は単独の SELECT 文内での列名と集約関数の組み合わせを許可しませんが
の部分のことでしたら、その下のSQL例に対しての説明ですね。通常は GROUP BY しなければならないところを、省略して記述できる、という拡張だと思います。