[英]Creating CTE of range(x) in SQL (Redshift)?
我想創建一個臨時變量或 CTE,其中包含列名周和值 [1,...52]
range(52)
的 SQL (Redshift) 等價物是什么?
在 python 中我可以做
import pandas as pd
data = {'weeks':list(range(1,53))}
weeks = pd.DataFrame(data)
但是我不能在我的上下文中使用 Python,所以我需要純粹在 SQL 中完成它。
這可以通過遞歸 CTE 來完成 - https://docs.aws.amazon.com/redshift/latest/dg/r_WITH_clause.html
它看起來像
with recursive week_no(n) as (
select 1 as n
union all
select n + 1 as n
from week_no
where n < 52
)
select n
from week_no;
=========================================
為查詢添加了一些迂腐的細節,以防您的環境的某些方面混淆了查詢:
with recursive week_no(n) as (
select 1::int as n
union all
select n + 1 as n
from week_no wn
where wn.n < 52
)
select n
from week_no;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.