簡體   English   中英

在 SQL (Redshift) 中創建 range(x) 的 CTE?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM