def distinct(self, *args, **_filter):
        """
        Return all rows of a table, but remove rows in with duplicate values in ``columns``.

        Interally this creates a `DISTINCT statement <http://www.w3schools.com/sql/sql_distinct.asp>`_.
        ::

            # returns only one row per year, ignoring the rest
            table.distinct('year')
            # works with multiple columns, too
            table.distinct('year', 'country')
            # you can also combine this with a filter
            table.distinct('year', country='China')
        """
        self._check_dropped()
        qargs = []
        columns = []
        try:
            for c in args:
                if isinstance(c, ClauseElement):
                    qargs.append(c)
                else:
                    columns.append(self.table.c[c])
            for col, val in _filter.items():
                qargs.append(self.table.c[col] == val)
        except __HOLE__:
            return []

        q = expression.select(columns, distinct=True,
                              whereclause=and_(*qargs),
                              order_by=[c.asc() for c in columns])
        return self.database.query(q)
dataset/ETHPy150Open pudo/dataset/dataset/persistence/table.py/Table.distinct