我有一个表格 TABLE
,其中包含一个名为 tags 的jsonb列。每行中的
tags 元素可能包含或不包含一个名为
group 的字段。我的目标是对所有包含
group 字段的
tags 进行
tags.group 分组。就像以下的Postgres查询:
<code><code><code>select tags->>'group' as group, sum(n) as sum
from TABLE
where tags ? 'group'
group by tags->>'group';
</code></code></code>
我正在尝试将代码转换为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中测试包含条件@>
,但我需要执行exists条件?
。我该如何在JOOQ中表达这一点?