本文整理汇总了Java中org.apache.metamodel.query.Query.having方法的典型用法代码示例。如果您正苦于以下问题:Java Query.having方法的具体用法?Java Query.having怎么用?Java Query.having使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.metamodel.query.Query
的用法示例。
在下文中一共展示了Query.having方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testFullyQualifiedColumnNames
import org.apache.metamodel.query.Query; //导入方法依赖的package包/类
public void testFullyQualifiedColumnNames() throws Exception {
final MutableSchema schema = new MutableSchema("sch");
final MutableTable table = new MutableTable("tab", TableType.TABLE, schema);
final MutableColumn nameColumn = new MutableColumn("name", ColumnType.VARCHAR).setTable(table);
final MutableColumn ageColumn = new MutableColumn("age", ColumnType.INTEGER).setTable(table);
schema.addTable(table);
table.addColumn(nameColumn);
table.addColumn(ageColumn);
final Query q = new Query();
q.select(ageColumn).selectCount();
q.from(table);
q.where(ageColumn, OperatorType.GREATER_THAN, 18);
q.groupBy(ageColumn);
q.having(FunctionType.COUNT, nameColumn, OperatorType.LESS_THAN, 100);
q.orderBy(ageColumn);
final String sql = new DB2QueryRewriter(null).rewriteQuery(q);
assertEquals("SELECT sch.tab.age, COUNT(*) FROM sch.tab WHERE sch.tab.age > 18 "
+ "GROUP BY sch.tab.age HAVING COUNT(sch.tab.name) < 100 ORDER BY sch.tab.age ASC", sql);
}
示例2: testFullyQualifiedColumnNamesWithFilterItemContainingTimestamp
import org.apache.metamodel.query.Query; //导入方法依赖的package包/类
public void testFullyQualifiedColumnNamesWithFilterItemContainingTimestamp() throws Exception {
final MutableSchema schema = new MutableSchema("sch");
final MutableTable table = new MutableTable("tab", TableType.TABLE, schema);
final MutableColumn nameColumn = new MutableColumn("name", ColumnType.VARCHAR).setTable(table);
final MutableColumn dateColumn = new MutableColumn("age", ColumnType.TIMESTAMP).setTable(table);
schema.addTable(table);
table.addColumn(nameColumn);
table.addColumn(dateColumn);
final Query q = new Query();
q.select(dateColumn).selectCount();
q.from(table);
q.where(dateColumn, OperatorType.GREATER_THAN, "2012-10-31 08:09:54");
q.groupBy(dateColumn);
q.having(FunctionType.COUNT, nameColumn, OperatorType.LESS_THAN, 100);
q.orderBy(dateColumn);
final String sql = new DB2QueryRewriter(null).rewriteQuery(q);
assertEquals("SELECT sch.tab.age, COUNT(*) FROM sch.tab WHERE sch.tab.age > TIMESTAMP ('2012-10-31 08:09:54') "
+ "GROUP BY sch.tab.age HAVING COUNT(sch.tab.name) < 100 ORDER BY sch.tab.age ASC", sql);
}
示例3: testSimpleHaving
import org.apache.metamodel.query.Query; //导入方法依赖的package包/类
public void testSimpleHaving() throws Exception {
Query q = new Query();
q.from(table2, "c");
Column roleColumn = table2.getColumnByName(COLUMN_ROLE_ROLE_NAME);
Column contributorIdColumn = table2.getColumnByName(COLUMN_ROLE_CONTRIBUTOR_ID);
q.groupBy(roleColumn);
SelectItem countSelectItem = new SelectItem(FunctionType.COUNT, contributorIdColumn).setAlias("my_count");
q.select(new SelectItem(roleColumn), countSelectItem);
q.having(new FilterItem(countSelectItem, OperatorType.GREATER_THAN, 1));
q.orderBy(new OrderByItem(countSelectItem));
assertEquals(
"SELECT c.name, COUNT(c.contributor_id) AS my_count FROM MetaModelSchema.role c GROUP BY c.name HAVING COUNT(c.contributor_id) > 1 ORDER BY COUNT(c.contributor_id) ASC",
q.toString());
DataSet data = getDataContext().executeQuery(q);
assertTrue(data.next());
assertEquals("Row[values=[founder, 2]]", data.getRow().toString());
assertTrue(data.next());
assertEquals("Row[values=[developer, 5]]", data.getRow().toString());
assertFalse(data.next());
}
示例4: testHavingFunctionNotSelected
import org.apache.metamodel.query.Query; //导入方法依赖的package包/类
public void testHavingFunctionNotSelected() throws Exception {
Query q = new Query();
q.from(table2, "c");
Column roleColumn = table2.getColumnByName(COLUMN_ROLE_ROLE_NAME);
Column contributorIdColumn = table2.getColumnByName(COLUMN_ROLE_CONTRIBUTOR_ID);
q.groupBy(roleColumn);
SelectItem countSelectItem = new SelectItem(FunctionType.COUNT, contributorIdColumn).setAlias("my_count");
q.select(new SelectItem(roleColumn));
q.having(new FilterItem(countSelectItem, OperatorType.GREATER_THAN, 3));
assertEquals("SELECT c.name FROM MetaModelSchema.role c GROUP BY c.name HAVING COUNT(c.contributor_id) > 3",
q.toString());
DataSet data = getDataContext().executeQuery(q);
assertTrue(data.next());
assertEquals("Row[values=[developer]]", data.getRow().toString());
assertFalse(data.next());
data.close();
q.getHavingClause().removeItems();
q.having(new FilterItem(SelectItem.getCountAllItem(), OperatorType.GREATER_THAN, 3));
assertEquals("SELECT c.name FROM MetaModelSchema.role c GROUP BY c.name HAVING COUNT(*) > 3", q.toString());
data = getDataContext().executeQuery(q);
assertTrue(data.next());
assertEquals("Row[values=[developer]]", data.getRow().toString());
assertFalse(data.next());
data.close();
}