我需要形成一份报告,其中提供日期间隔内每个日期的一些信息。
我需要在单个查询中使用它(无法创建任何函数或支持表)。
如何在PrestoDB中实现?
注意:有很多特定于供应商的解决方案here,here甚至是here。但是它们都不满足我的需求,因为它们要么在Presto中不起作用,要么使用表/函数。
更精确地说,这里是一个查询示例:
errors.as_json
答案 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)