Sie nicht selectCount()
in diesem Fall verwenden können, weil das eine SELECT COUNT(*)
Abfrage produzieren wird, wenn Sie wirklich eine SELECT type, COUNT(*)
Abfrage möchten.
Hier sind mehrere Möglichkeiten, wie das zu tun, je nachdem, welche Art Sie versuchen, aus der Abfrage zu erhalten:
// 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());
Oder:
Map<String, Record2<String, Integer>> map2 =
ctx.select(BOOKTABLE.TYPE, count())
.from(BOOKTABLE)
.groupBy(BOOKTABLE.TYPE)
.fetchMap(BOOKTABLE.TYPE);
Oder:
Map<String, List<Integer>> map3 =
ctx.select(BOOKTABLE.TYPE, count())
.from(BOOKTABLE)
.groupBy(BOOKTABLE.TYPE)
.fetchGroups(BOOKTABLE.TYPE, count());
Oder:
Map<String, Result<Record2<String, Integer>>> map4 =
ctx.select(BOOKTABLE.TYPE, count())
.from(BOOKTABLE)
.groupBy(BOOKTABLE.TYPE)
.fetchGroups(BOOKTABLE.TYPE);
Vielen Dank sir – emraldinho
@Lukas Eder Was passiert, wenn die Spalte BOOKTABLE.TYPE Null- und Leerwerte hat? Wird diese Abfrage die leeren und null-Werte zusammen als null gruppieren? –
@vinaypatlolla: In Oracle: Ja, sie sind das Gleiche. In anderen Datenbanken: Nein, "NULL" und "" sind nicht dasselbe. –