我需要形成一个报告,在日期间隔内为每个日期提供一些信息。
我需要在单个查询中使用它(不能创建任何函数或支持表)。
我怎样才能在 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
Run Code Online (Sandbox Code Playgroud)
Ike*_*ker 11
您可以使用 PrestoSEQUENCE()函数将日期序列生成为数组,然后使用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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5814 次 |
| 最近记录: |