@Test public void testGroupByQuery() throws Exception { Table table = dataContext.getDefaultSchema().getTableByName(peopleIndexType); Query q = new Query(); q.from(table); q.groupBy(table.getColumnByName("gender")); q.select( new SelectItem(table.getColumnByName("gender")), new SelectItem(FunctionType.MAX, table.getColumnByName("age")), new SelectItem(FunctionType.MIN, table.getColumnByName("age")), new SelectItem(FunctionType.COUNT, "*", "total"), new SelectItem(FunctionType.MIN, table.getColumnByName("id")).setAlias("firstId")); q.orderBy("gender"); DataSet data = dataContext.executeQuery(q); assertEquals( "[peopletype.gender, MAX(peopletype.age), MIN(peopletype.age), COUNT(*) AS total, MIN(peopletype.id) AS firstId]", Arrays.toString(data.getSelectItems())); assertTrue(data.next()); assertEquals("Row[values=[female, 20, 17, 5, 5]]", data.getRow().toString()); assertTrue(data.next()); assertEquals("Row[values=[male, 19, 17, 4, 1]]", data.getRow().toString()); assertFalse(data.next()); }
public SatisfiedOrderByBuilderImpl( FunctionType function, Column column, Query query, GroupedQueryBuilder queryBuilder) { super(queryBuilder); orderByitem = new OrderByItem(new SelectItem(function, column)); query.orderBy(orderByitem); }