因此,我试图在Hive中编写一个查询,然后将其自动化。我的想法是我有一张表,其中显示带有带有时间戳字段的请求的字段updated。因此,有很多行包含发出请求的日期和时间。无论查询何时运行,我都希望从最近7天获得请求。

我试过了:

选择col1,col2,col3,count(*)cnt
从表
在date_sub(SELECT MAX(updated)AS maxdate FROM table,7)之间更新的位置
AND SELECT MAX(updated)AS maxdate FROM table
GROUP BY col1,col2,col3
拥有> 10

我已经看过了,似乎它应该做我想要的,但是我得到了:

ParseException行4:79无法识别函数规范中'select''max''('附近的输入

对这个错误的任何帮助或建议的不同方法都将非常有用。

最佳答案

如果所有表中“更新”列的数据类型均为日期时间,可以尝试以下查询:

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

10-07 12:22