JOOQ / SQL如何根据外键选择最小日期

问题描述 投票:0回答:1

我有一个名为Foo的表,其中包含3列(id,time,barId),我想从Foo中选择所有字段,其中时间(存储为时间戳)是barId组中的最低字段。例如,如果我有

Id,time,barId

1,10,10,1

2,11am,1

3,10,10,2

4,a

我希望收到第1行和第4行。

目前我正在使用

.select(FOO.ID, FOO.TIME.min, FOO.BAR_ID)
   .from(FOO)
   .where()
   .groupBy(FOO.BAR_ID)
   .fetchInto(Foo.class);

我收到一个错误说明column "foo.id" must appear in the GROUP BY clause or be used in an aggregate function

java sql spring-boot jooq
1个回答
1
投票

我遇到的问题是我没有按照我选择的行进行分组。

工作代码是

.select(FOO.ID, FOO.TIME.min, FOO.BAR_ID)
  .from(FOO)
  .where()
  .groupBy(FOO.ID, FOO.TIME, FOO.BAR_ID)
  .fetchInto(Foo.class);
© www.soinside.com 2019 - 2024. All rights reserved.