diff --git a/jOOQ/src/main/java/org/jooq/impl/Mode.java b/jOOQ/src/main/java/org/jooq/impl/Mode.java index 38a2546f19..bb618876f5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Mode.java +++ b/jOOQ/src/main/java/org/jooq/impl/Mode.java @@ -38,6 +38,8 @@ package org.jooq.impl; import org.jooq.AggregateFilterStep; +import org.jooq.DataType; +import org.jooq.Field; import org.jooq.OrderField; import org.jooq.OrderedAggregateFunctionOfDeferredType; @@ -46,8 +48,15 @@ import org.jooq.OrderedAggregateFunctionOfDeferredType; */ final class Mode implements OrderedAggregateFunctionOfDeferredType { + @SuppressWarnings("unchecked") @Override public final AggregateFilterStep withinGroupOrderBy(OrderField field) { - return new Function("mode", ((SortFieldImpl) field).getField().getDataType()).withinGroupOrderBy(field); + DataType type = field instanceof SortFieldImpl + ? ((SortFieldImpl) field).getField().getDataType() + : field instanceof Field + ? ((AbstractField) field).getDataType() + : (DataType) SQLDataType.NUMERIC; + + return new Function("mode", type).withinGroupOrderBy(field); } }