使用 Hive SQL 根据日期排除同一列中的值

Exclude values from same column depending on date, using Hive SQL

我需要使用 Hive 从 table 中提取一组 ID。我要从中提取数据的 table 按日期分区。我需要的是八天前出现在 table 中但不出现在代表最近 7 天的日期的 table 中的不同 ID。我试过使用子查询:

SELECT DISTINCT id
FROM my_table
WHERE date = '2016-07-14'
  AND id NOT IN (
    SELECT DISTINCT id
    FROM my_table
    WHERE date BETWEEN '2016-07-15' AND '2016-07-21'
  );

但是,我收到一条错误消息,其中包含 查询中不支持的语言功能(整个错误消息太长 post)。由于我不能在 Hive SQL 中使用这种方法,我在这里有什么选择?

可以使用 LEFT JOIN 完成相同的功能:

SELECT a.ID 
FROM
        (
        SELECT DISTINCT ID
        FROM my_table
        WHERE date = '2016-07-14'
        )a 
          LEFT JOIN (
                     SELECT DISTINCT ID
                     FROM my_table
                     WHERE date BETWEEN '2016-07-15' AND '2016-07-21'
                   ) s on a.ID=s.ID
WHERE s.ID IS NULL;