それは興味深い。私の知る限り、これは SQL では不可能です。SQL:2008 標準では次のように指定されています
10.9 <aggregate function>
Format
<aggregate function> ::=
COUNT <left paren> <asterisk> <right paren> [ <filter clause> ]
| <general set function> [ <filter clause> ]
<general set function> ::=
<set function type> <left paren> [ <set quantifier> ]
<value expression> <right paren>
DISTINCT
set 量指定子の有無にかかわらず、コンマ区切りの引数リストを入れる余地はありません。これは Oracle で正しく実装されています。
それでも、MySQL はこの非標準の「便利な構文」を許可しているようです。
COUNT(DISTINCT expr,[expr...])
異なる非 NULL expr 値を持つ行数のカウントを返します。
( http://dev.mysql.com/doc/refman/5.6/en/group-by-functions.html#function_countから取得)。
あなたの質問に答えるために、これは現在 jOOQ では不可能ですが、将来のサポートのために#1728を提出しました。現在、独自の多引数集計関数サポートを作成することで、これを回避できます。
Field<Integer> myCount = Factory.field(
"count(distinct {0}, {1})", Integer.class, c2, c3);
Factory.field(String, Class<T>, QueryPart...)
詳細については、メソッドの関連する Javadoc を参照してください。
これは現在、jOOQ 2.6 で実装されています。
あなたは書ける
Field<Integer> count = Factory.countDistinct(c2, c3);
Factory.countDistinct(Field...)
詳細については、メソッドの Javadoc を参照してください。