hive:选择从列的最大值开始的所有行

eblbsuwk  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(515)

因此,我尝试在hive中编写一个查询,然后将其自动化。我的想法是我有一个表,其中显示了一个名为updated的timestamp字段的请求。所以有很多行显示了请求发出的日期和时间。无论何时运行查询,我都希望获得过去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

任何关于这个错误的帮助或者建议的不同的方法都是很好的。

xam8gpfp

xam8gpfp1#

如果列“updated”的数据类型在所有表中都是datatime,是否可以尝试此查询:

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

相关问题