func (idx *Index) GroupByFilter(filterQuery *PQLRowQuery, rowsQueries ...*PQLRowsQuery) *PQLBaseQuery {
	if len(rowsQueries) < 1 {
		return NewPQLBaseQuery("", idx, errors.New("there should be at least one rows query"))
	}
	filterText := filterQuery.serialize().String()
	text := fmt.Sprintf("GroupBy(%s,filter=%s)", strings.Join(serializeGroupBy(rowsQueries...), ","), filterText)
	return NewPQLBaseQuery(text, idx, nil)
}
func (idx *Index) GroupByFilter(filterQuery *PQLRowQuery, rowsQueries ...*PQLRowsQuery) *PQLBaseQuery {
	if len(rowsQueries) < 1 {
		return NewPQLBaseQuery("", idx, errors.New("there should be at least one rows query"))
	}
	filterText := filterQuery.serialize().String()
	text := fmt.Sprintf("GroupBy(%s,filter=%s)", strings.Join(serializeGroupBy(rowsQueries...), ","), filterText)
	return NewPQLBaseQuery(text, idx, nil)
}
func ( idx * Index ) GroupByFilter ( filterQuery * PQLRowQuery , rowsQueries ... * PQLRowsQuery ) * PQLBaseQuery { if len ( rowsQueries ) < 1 { return NewPQLBaseQuery ( " " , idx , errors . New ( " " ) ) } filterText := filterQuery . serialize ( ) . String ( ) text := fmt . Sprintf ( " " , strings . Join ( serializeGroupBy ( rowsQueries ... ) , " " ) , filterText ) return NewPQLBaseQuery ( text , idx , nil ) }
// GroupByFilter creates a GroupBy query with the given filter and Rows queries
GroupByFilter creates a GroupBy query with the given filter and Rows queries