diff --git a/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java b/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java index 8b8fcf3130..a04662c8b3 100644 --- a/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java +++ b/jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java @@ -2176,6 +2176,12 @@ public abstract class jOOQAbstractTest< assertEquals("test", result.get(0).getValue(f3)); } + @Test + public void testSelectCountQuery() throws Exception { + assertEquals(4, create().selectCount().from(TBook()).fetchOne(0)); + assertEquals(2, create().selectCount().from(TAuthor()).fetchOne(0)); + } + @Test public void testSelectQuery() throws Exception { SelectQuery q = create().selectQuery(); diff --git a/jOOQ/src/main/java/org/jooq/impl/Factory.java b/jOOQ/src/main/java/org/jooq/impl/Factory.java index b7a7c47dfb..5d9dbee087 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Factory.java +++ b/jOOQ/src/main/java/org/jooq/impl/Factory.java @@ -1028,6 +1028,26 @@ public class Factory implements Configuration { return new SelectImpl(this).select(one()); } + /** + * Create a new DSL select statement for COUNT(*) + *

+ * Example:

+     * Factory create = new Factory();
+     *
+     * create.selectCount()
+     *       .from(table1)
+     *       .join(table2).on(field1.equal(field2))
+     *       .where(field1.greaterThan(100))
+     *       .orderBy(field2)
+     *       .execute();
+     * 
+ * + * @see #one() + */ + public final SelectSelectStep selectCount() { + return new SelectImpl(this).select(count()); + } + /** * Create a new DSL select statement. *