docs: def hashed(field_name, percent, fields=None, count=0):
      """Provides a sampling strategy based on hashing and selecting a percentage of data.
  
      Args:
        field_name: the name of the field to hash.
        percent: the percentage of the resulting hashes to select.
        fields: an optional list of field names to retrieve.
        count: optional maximum count of rows to pick.
      Returns:
        A sampling function that can be applied to get a hash-based sampling.
      """
      if field_name is None:
        raise Exception('Hash field must be specified')
  
      def _hashed_sampling(sql):
        projection = Sampling._create_projection(fields)
        sql = 'SELECT %s FROM (%s) WHERE MOD(ABS(FARM_FINGERPRINT(CAST(%s AS STRING))), 100) < %d' % \
              (projection, sql, field_name, percent)
        if count != 0:
          sql = '%s LIMIT %d' % (sql, count)
        return sql
      return _hashed_sampling