可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

HAVING子句

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

HAVING 子句通常用于进一步限制先前发出的 GROUP BY 子句 的结果数据。例如,仅选择至少写了两本书的作者

SELECT AUTHOR_ID, COUNT(*)
FROM BOOK
GROUP BY AUTHOR_ID
HAVING COUNT(*) >= 2
 
create.select(BOOK.AUTHOR_ID, count())
      .from(BOOK)
      .groupBy(AUTHOR_ID)
      .having(count().ge(2))
      .fetch();

根据 SQL 标准,您可以省略 GROUP BY 子句,仍然发出 HAVING 子句。 这将隐式执行 GROUP BY ()。 jOOQ 也支持这种语法。 以下示例仅在 books 表中至少有 4 本书时才选择一条记录

SELECT COUNT(*)
FROM BOOK
HAVING COUNT(*) >= 4
 
create.select(count(*))
      .from(BOOK)
      .having(count().ge(4))
      .fetch();

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo