def _grouped_count(self, count_column: str, *columns: Set[str], label: Optional[str]=None):
    if (not columns):
        raise ValueError('Supply one or multiple columns as arguments.')
    q = self._create_query()
    q = q.group_by(*columns).with_entities(*columns).order_by(func.count(count_column).label((label or 'count')).desc())
    return read_with_progress(q.statement, self.engine)
def _grouped_count(self, count_column: str, *columns: Set[str], label: Optional[str]=None):
    if (not columns):
        raise ValueError('Supply one or multiple columns as arguments.')
    q = self._create_query()
    q = q.group_by(*columns).with_entities(*columns).order_by(func.count(count_column).label((label or 'count')).desc())
    return read_with_progress(q.statement, self.engine)