2017-09-19 18 views
1

における明確な配列集合体を選択するための私はjOOQは(多くの幸運なし)これを放射するように取得しようとしています:jOOQ PostgreSQLの

SELECT array_agg(DISTINCT my_field) FROM ... 

私は無地-SQLのフィールドを使用して終了。

これを行う方法はありますか?私は行方不明ですか?

もしそうでなければ、集計関数で使用できるField.distinct()メソッドを追加するのは意味がありますか?または、SelectStepではなくFieldを作成するDSL.distinct(Field) - 違いがあるかどうかはわかりません。

おかげ

答えて

1

以降jOOQ 3.10から入手DSL.arrayAggDistinct()機能がありますなど、countDistinctgroupConcatDistinctmin/max/sum/avgDistincthttps://github.com/jOOQ/jOOQ/issues/6281

これは、現在、各集計のために別々のDSLメソッドを作成することによって達成されているようです

これまでのところ回避策としてplain SQL APIを使用してください。

public static <T> Field<T[]> arrayAggDistinct(Field<T> myField) { 
    return DSL.field("array_agg(distinct {0})", myField.getArrayDataType(), myField); 
} 
関連する問題