Java JOOQ/SQL如何基于外键选择最小日期

Java JOOQ/SQL如何基于外键选择最小日期,java,sql,spring-boot,jooq,Java,Sql,Spring Boot,Jooq,我有一个名为Foo的表,它包含3列(id、time、barId),我想从Foo中选择时间(存储为时间戳)是barId组中最低的字段。例如,如果我有 身份证,时间,巴里德 上午1点、10点、1点 上午2点、11点、1点 上午3点、10点、2点 上午4点、9点、2点 我希望收到后面的第1行和第4行 目前我正在使用 .select(FOO.ID, FOO.TIME.min, FOO.BAR_ID) .from(FOO) .where() .groupBy(FOO.BAR_ID)

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

身份证,时间,巴里德

上午1点、10点、1点

上午2点、11点、1点

上午3点、10点、2点

上午4点、9点、2点

我希望收到后面的第1行和第4行

目前我正在使用

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

我收到一个错误,指出
列“foo.id”必须出现在GROUP BY子句中或用于聚合函数中

我遇到的问题是我没有按所选的行进行分组

工作代码是

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