public void testGroupConcat() { setUpAggregateTest(); StringProperty firstNameConcat = StringProperty.fromFunction( Function.groupConcat(TestModel.FIRST_NAME), "fname_concat"); StringProperty firstNameConcatSeparator = StringProperty.fromFunction( Function.groupConcat(TestModel.FIRST_NAME, "|"), "fname_concat_separator"); StringProperty firstNameDistinct = StringProperty.fromFunction( Function.groupConcatDistinct(TestModel.FIRST_NAME), "fname_distinct"); SquidCursor<TestModel> cursor = database.query(TestModel.class, Query.select(firstNameConcat, firstNameConcatSeparator, firstNameDistinct) .groupBy(TestModel.FIRST_NAME)); try { assertEquals(2, cursor.getCount()); cursor.moveToFirst(); assertEquals("A,A,A", cursor.get(firstNameConcat)); assertEquals("A|A|A", cursor.get(firstNameConcatSeparator)); assertEquals("A", cursor.get(firstNameDistinct)); cursor.moveToNext(); assertEquals("B,B,B", cursor.get(firstNameConcat)); assertEquals("B|B|B", cursor.get(firstNameConcatSeparator)); assertEquals("B", cursor.get(firstNameDistinct)); } finally { cursor.close(); } }
LongProperty aliasedId = employeesAlias.qualifyField(Employee.ID); LongProperty aliasedManagerId = employeesAlias.qualifyField(Employee.MANAGER_ID); StringProperty subordinates = StringProperty.fromFunction(Function.groupConcat(aliasedId, separator), "subordinates"); Query subquery = Query.select(aliasedManagerId, subordinates).from(employeesAlias)