【发布时间】:2018-02-18 00:01:43
【问题描述】:
我有一个表 TABLE,其中包含一个名为 tags 的 jsonb 列。每行中的tags 元素可能包含也可能不包含名为group 的字段。我的目标是按tags.group 对tags 包含group 字段的所有行进行分组。像下面的 postgres 查询:
select tags->>'group' as group, sum(n) as sum
from TABLE
where tags ? 'group'
group by tags->>'group';
我正在尝试将其转换为 JOOQ,但无法找到如何表达 where tags ? 'group' 条件。
例如,
val selectGroup = DSL.field("{0}->>'{1}'", String::class.java, TABLE.TAGS, "group")
dsl().select(selectGroup, DSL.sum(TABLE.N))
.from(TABLE)
.where(TABLE.TAGS.contains('group'))
.groupBy(selectGroup)
这相当于在 postgres 中测试包含条件@>。但我需要做存在条件?。我如何在 JOOQ 中表达这一点?
【问题讨论】:
标签: postgresql kotlin jooq