def subquery(self, name=None, with_labels=False, reduce_columns=False):
    'return the full SELECT statement represented by\n        this :class:`.Query`, embedded within an :class:`.Alias`.\n\n        Eager JOIN generation within the query is disabled.\n\n        :param name: string name to be assigned as the alias;\n            this is passed through to :meth:`.FromClause.alias`.\n            If ``None``, a name will be deterministically generated\n            at compile time.\n\n        :param with_labels: if True, :meth:`.with_labels` will be called\n         on the :class:`.Query` first to apply table-qualified labels\n         to all columns.\n\n        :param reduce_columns: if True, :meth:`.Select.reduce_columns` will\n         be called on the resulting :func:`.select` construct,\n         to remove same-named columns where one also refers to the other\n         via foreign key or WHERE clause equivalence.\n\n         .. versionchanged:: 0.8 the ``with_labels`` and ``reduce_columns``\n            keyword arguments were added.\n\n        '
    q = self.enable_eagerloads(False)
    if with_labels:
        q = q.with_labels()
    q = q.statement
    if reduce_columns:
        q = q.reduce_columns()
    return q.alias(name=name)
return the full SELECT statement represented by
this :class:`.Query`, embedded within an :class:`.Alias`.

Eager JOIN generation within the query is disabled.

:param name: string name to be assigned as the alias;
    this is passed through to :meth:`.FromClause.alias`.
    If ``None``, a name will be deterministically generated
    at compile time.

:param with_labels: if True, :meth:`.with_labels` will be called
 on the :class:`.Query` first to apply table-qualified labels
 to all columns.

:param reduce_columns: if True, :meth:`.Select.reduce_columns` will
 be called on the resulting :func:`.select` construct,
 to remove same-named columns where one also refers to the other
 via foreign key or WHERE clause equivalence.

 .. versionchanged:: 0.8 the ``with_labels`` and ``reduce_columns``
    keyword arguments were added.
def subquery(self, name=None, with_labels=False, reduce_columns=False):
    'return the full SELECT statement represented by\n        this :class:`.Query`, embedded within an :class:`.Alias`.\n\n        Eager JOIN generation within the query is disabled.\n\n        :param name: string name to be assigned as the alias;\n            this is passed through to :meth:`.FromClause.alias`.\n            If ``None``, a name will be deterministically generated\n            at compile time.\n\n        :param with_labels: if True, :meth:`.with_labels` will be called\n         on the :class:`.Query` first to apply table-qualified labels\n         to all columns.\n\n        :param reduce_columns: if True, :meth:`.Select.reduce_columns` will\n         be called on the resulting :func:`.select` construct,\n         to remove same-named columns where one also refers to the other\n         via foreign key or WHERE clause equivalence.\n\n         .. versionchanged:: 0.8 the ``with_labels`` and ``reduce_columns``\n            keyword arguments were added.\n\n        '
    q = self.enable_eagerloads(False)
    if with_labels:
        q = q.with_labels()
    q = q.statement
    if reduce_columns:
        q = q.reduce_columns()
    return q.alias(name=name)