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

时间:2014-04-24 18:27:06

标签: sql hadoop hive

所以我试图在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 :(得分:0)

如果列的数据类型"已更新&#34>,您可以尝试此查询吗?是所有表格中的数据时间:

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