首页 文章

Hive:选择范围为最大列的所有行

提问于
浏览
0

所以我试图在Hive中编写一个查询,然后自动化 . 我的想法是,我有一个表,显示带有名为updated的时间戳字段的Requests . 因此,有很多行包含请求的日期和时间 . 无论何时运行查询,我都希望获得过去7天的请求 .

我试过了:

SELECT col1, col2, col3, count(*) cnt       
FROM table
WHERE updated BETWEEN date_sub(SELECT MAX(updated) AS maxdate FROM table, 7) 
                      AND SELECT MAX(updated) AS maxdate FROM table 
GROUP BY col1, col2, col3
HAVING cnt > 10

我已经看了这个,看起来它应该做我正在寻找的东西,但是我得到:

ParseException line 4:79 cannot recognize input near 'select' 'max' '(' in function specification

任何有关此错误或建议的不同方法的帮助都会很棒 .

1 回答

  • 0

    如果“已更新”列的数据类型是所有表中的数据时间,您可以尝试此查询:

    SELECT col1, col2, col3, count(*) cnt       
    FROM table
    WHERE updated BETWEEN (SELECT MAX(updated)-7 AS maxdate FROM table)
    AND (SELECT MAX(updated) AS maxdate FROM table)
    GROUP BY col1, col2, col3
    HAVING count(*) > 10
    

相关问题