sql - 配置单元:选择所有范围从一列的最大值开始的行

标签 sql hadoop hive

因此,我试图在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

关于sql - 配置单元:选择所有范围从一列的最大值开始的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276912/

相关文章:

hadoop - sqoop导入成功,但配置单元显示表看不到表

hadoop - 在 Hive 中将分区数据插入外部表

join - Apache Hive 使用的默认 MapReduce 连接是什么?

mysql - 用于只读操作的快速类 SQL 数据库

sql - 如何从我在另一列上使用 max 来确定行的特定行中选择一列

SQLite:使用 COUNT 和 GROUP BY 加速 SQL 语句

hadoop - MAP 数据类型中的 HIVE 嵌套 ARRAY

java - JPA 和聚合函数。如何使用查询结果?

hadoop - 将文本加载到 Orc 文件

hadoop - 以编程方式检索特定作业的 tasktracker 日志