hive求一个字段中最大的时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive求一个字段中最大的时间相关的知识,希望对你有一定的参考价值。

hive中有一个字段对应多个时间,我想把每个字段中的最大时间都求出来,如何实现啊,急急急

参考技术A 间戳10位整型数没数; 看使用php直接使用date("Y-m-d",hive);mysql使用formart_date直接转换

Hive:从列的最大值选择范围内的所有行

【中文标题】Hive:从列的最大值选择范围内的所有行【英文标题】:Hive: Select all rows with a range from the max of a column 【发布时间】:2014-04-24 18:27:06 【问题描述】:

所以我试图在 Hive 中编写一个查询,然后将其自动化。这个想法是我有一个表,它显示了一个名为更新的时间戳字段的请求。因此,有很多行包含发出请求的日期和时间。无论何时运行查询,我都想获取过去 7 天的请求。

我试过了:

选择 col1,col2,col3,计数(*)cnt 从表 WHERE updated BETWEEN date_sub(SELECT MAX(updated) AS maxdate FROM table, 7) AND SELECT MAX(updated) AS maxdate FROM table 按 col1、col2、col3 分组 有 cnt > 10

我已经查看了这个,它似乎应该做我正在寻找的,但是我得到:

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

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

【问题讨论】:

从现在开始的最后 7 天还是从上次提交日期开始? 从执行此查询的那一刻起的最后 7 天 【参考方案1】:

如果所有表中“更新”列的数据类型是数据时间,你能试试这个查询吗:

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

【讨论】:

这个查询只有一个表,更新的是一个TIMESTAMP。我已经独立尝试了这部分查询: date_sub(SELECT MAX(updated) AS maxdate FROM table, 7) 它给了我正确的日期

以上是关于hive求一个字段中最大的时间的主要内容,如果未能解决你的问题,请参考以下文章

hive如何按某一字段分组取最大值所在行的数据

Hive:根据最大值对列进行分组

plsql求最大值最大值

MySQL求intvarchar里的最大最小值

获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)

动态规划最大K乘积问题