PrestoDB:选择两个日期之间的所有日期

时间:2018-07-18 11:36:24

标签: sql presto

我需要形成一份报告,其中提供日期间隔内每个日期的一些信息。

我需要在单个查询中使用它(无法创建任何函数或支持表)。

如何在PrestoDB中实现?

注意:有很多特定于供应商的解决方案herehere甚至是here。但是它们都不满足我的需求,因为它们要么在Presto中不起作用,要么使用表/函数。

更精确地说,这里是一个查询示例:

errors.as_json

1 个答案:

答案 0 :(得分:2)

您可以使用Presto SEQUENCE()函数将天序列生成为数组,然后使用UNNEST将该数组作为结果集爆炸。

类似的事情应该对您有用:

SELECT CAST(date_column AS DATE) AS DAY
FROM (
      VALUES (SEQUENCE(cast('2017-01-01' AS date), cast('2018-01-01' AS date), INTERVAL '1' DAY) ) 
    ) AS t1(date_array)
CROSS JOIN UNNEST(date_array) AS t2(date_column)