Вы не можете использовать selectCount()
в этом случае, потому что будет производить SELECT COUNT(*)
запрос, если вы действительно хотите SELECT type, COUNT(*)
запрос.
Вот несколько способов, как сделать это, в зависимости от того, какой вы пытаетесь выйти из запроса:
// Assuming this static import:
import static org.jooq.impl.DSL.*;
Map<String, Integer> map1 =
ctx.select(BOOKTABLE.TYPE, count())
.from(BOOKTABLE)
.groupBy(BOOKTABLE.TYPE)
.fetchMap(BOOKTABLE.TYPE, count());
Или:
Map<String, Record2<String, Integer>> map2 =
ctx.select(BOOKTABLE.TYPE, count())
.from(BOOKTABLE)
.groupBy(BOOKTABLE.TYPE)
.fetchMap(BOOKTABLE.TYPE);
Или:
Map<String, List<Integer>> map3 =
ctx.select(BOOKTABLE.TYPE, count())
.from(BOOKTABLE)
.groupBy(BOOKTABLE.TYPE)
.fetchGroups(BOOKTABLE.TYPE, count());
or:
Map<String, Result<Record2<String, Integer>>> map4 =
ctx.select(BOOKTABLE.TYPE, count())
.from(BOOKTABLE)
.groupBy(BOOKTABLE.TYPE)
.fetchGroups(BOOKTABLE.TYPE);
Большое спасибо sir – emraldinho
@Lukas Eder Что делать, если столбец BOOKTABLE.TYPE имеет значения Null и Empty? Будет ли этот запрос группировать пустые и нулевые значения вместе как null? –
@vinaypatlolla: В Oracle: Да, это то же самое. В других базах данных: Нет, 'NULL' и' '' 'не то же самое. –