在配置单元sql中生成日期

xxls0lw8  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(344)

我希望能够创建一个表,其中包含从另一个表的最小和最大日期之间的所有日期(包括)。请参见下面的简单查询以获取这些日期

-- Get the min and max dates from the table
select min(date(sale_date)) as min_date,
       max(date(sale_date)) as max_date
from TABLE;

我花了一个小时在google上搜索这个问题,发现有人试图在mysql和oraclesql上这样做,但没有在hivesql上这样做,因为我无法将其转换为hivesql。如果有人知道怎么做,请告诉我。先谢谢你。

bf1o4zei

bf1o4zei1#

好吧,这不是我的答案。一位同事回答了这个问题。但我仍然认为,为了您将来的利益,我向同事展示解决方案是很重要的。它假设您已经创建了一个包含最小日期和最大日期的表。

CREATE TABLE TABLE_2
STORED AS AVRO
LOCATION 'xxxxxx'
AS
SELECT date_add (t.min_date,pe.i)   AS date_key
FROM    TABLE_1 t
LATERAL VIEW
posexplode(split(space(datediff(t.max_date,t.min_date)),' ')) pe AS i,x;

相关问题