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



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

我需要将它放在一个查询中(不能创建任何函数或支持表(。

我如何在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)

相关内容

  • 没有找到相关文章

最新更新