繁体   English   中英

配置单元查询以按年份和ID获取日期列组的最小值和最大值

[英]Hive query to get min and max of date column group by year and id

我有两列id和date的表。我想获取该年份特定ID的最大日期和最小日期。 以下是样本数据和我想要的结果样本数据

id  date_col

123 2015-05-01 04:00:00

123 2017-04-01 04:00:00

123 2017-09-01 04:00:00

123 2014-09-01 04:00:00

123 2012-12-01 05:00:00

123 2016-08-01 04:00:00

123 2014-05-01 04:00:00

123 2016-10-01 04:00:00

我期待的结果

123 2014-05-01   2014-09-01

123 2015-05-01

123 2016-08-01   2016-10-01

123 2017-04-01   2017-09-01

我尝试通过使用下面的多个查询,但我不会根据年份进行排序

SELECT id,MAX(date_col) AS maxdate_col,MIN(date_col) AS mindate_col FROM table GROUP BY id 

SELECT id,MAX(date_col) AS max_votes,MIN(date_col) AS mindate_col,YEAR(date_col) FROM test GROUP BY id,YEAR(date_col) 

尝试这个

SELECT id
        ,MIN(date_col) AS mindate_col
        ,(CASE WHEN MAX(date_col) <> MIN(date_col) THEN MAX(date_col) END)  AS maxdate_col
        ,YEAR(date_col) AS year_col
FROM    test 
GROUP BY id,YEAR(date_col)
ORDER BY id,year_col

如果只需要date部分,可以将其转换为CAST(date_col AS DATE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM