code: def distinct(self, *args, **_filter):
          
          if not self.exists:
              return iter([])
  
          columns = []
          clauses = []
          for column in args:
              if isinstance(column, ClauseElement):
                  clauses.append(column)
              else:
                  if not self.has_column(column):
                      raise DatasetException("No such column: %s" % column)
                  columns.append(self.table.c[column])
  
          clause = self._args_to_clause(_filter, clauses=clauses)
          if not len(columns):
              return iter([])
  
          q = expression.select(columns,
                                distinct=True,
                                whereclause=clause,
                                order_by=[c.asc() for c in columns])
          return self.db.query(q)
docs: Return all the unique (distinct) values for the given ``columns``.
          ::
  
              # 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')