我需要形成一个报告,为日期间隔内的每个日期提供一些信息。
我需要将它放在一个查询中(不能创建任何函数或支持表(。
我如何在PrestoDB中实现这一点?
注意:这里、这里甚至这里都有许多特定于供应商的解决方案。但它们都不能满足我的需求,因为它们要么不在Presto中工作,要么使用表/函数。
更准确地说,这里有一个查询示例:
WITH ( query to select all dates between 2017.01.01 and 2018.01.01 ) AS dates
SELECT
date date,
count(*) number_of_orders
FROM dates dates
LEFT JOIN order order
ON order.created_at = dates.date
您可以使用PrestoSEQUENCE()
函数生成一个日期序列作为数组,然后使用UNNEST
将该数组分解为结果集。
像这样的东西应该对你有用:
SELECT date_array AS DAY
FROM UNNEST(
SEQUENCE(
cast('2017-01-01' AS date),
cast('2018-01-01' AS date),
INTERVAL '1' DAY
)
) AS t1(date_array)