'The full SELECT statement represented by this Query.
The statement by default will not have disambiguating labels
applied to the construct unless with_labels(True) is called
first.'

@property
def statement(self):

    stmt = self._compile_context(labels=self._with_labels).statement
    if self._params:
        stmt = stmt.params(self._params)
    return stmt._annotate({'no_replacement_traverse': True})
