Dha*_*ram 2 generate-series amazon-redshift postgresql-8.0
我需要为报告创建一个空的时间表系列,这样我就可以将几个表的连接活动留给它了.一天中的每个小时都不一定有数据,但我希望它显示为零或零以获取不活动而不是省略当天的那个小时.
在后期版本的Postgres(后8.0.2版)中,这在以下几个方面很容易:
SELECT unnest(array[0,1,2,3,4...]) as numbers
要么
CROSS JOIN (select generate_series as hours
from generate_series(now()::timestamp,
now()::timestamp + interval '1 day',
'1 hour'::interval
)) date_series
Redshift可以运行其中一些命令,但是当您尝试与任何表一起运行它时会引发错误.
我需要的:
生成一系列数字(例如0-23)作为将在redshift上运行的子查询的可靠方法(使用postgres 8.0.2).
只要你的表有比所需系列有更多行的数字,这就是过去对我有用的东西:
select
(row_number() over (order by 1)) - 1 as hour
from
large_table
limit 24
;
Run Code Online (Sandbox Code Playgroud)
哪个返回数字0-23.
Redshift 于 2021 年 4 月发布了递归。现在 Redshift 中可以实现递归。您可以使用以下代码生成一系列数字(甚至表格)
with recursive numbers(NUMBER) as
(
select 1 UNION ALL
select NUMBER + 1 from numbers where NUMBER < 28
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7356 次 |
| 最近记录: |