我希望能够创建一个表,其中包含来自另一个表的最小和最大日期之间的所有日期(包括)。请参阅下面的简单查询以获取这些日期
-- 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;
我花了最后一小时搜索这个问题,并且已经尝试在MySQL和Oracle SQL上执行此操作,但没有在Hive SQL上执行此操作,而我无法将其转换为Hive SQL。如果有人知道如何做到这一点,请告诉我。提前感谢你。
答案 0 :(得分:0)
好的,这不是我的答案。一位同事能够回答这个问题。我仍然认为,为了您未来的利益,我会展示我的同事的解决方案。它假定您已创建一个包含最小日期和最大日期的表。
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;