用 SQL 模仿 "generate_series" 的行为
Imitate behaviour of "generate_series" with SQL
我正在尝试模仿“generate_series”的行为。
我的 table 包含各种字段。其中之一是“计数”。我想像“计数”一样频繁地输出每一行,因为每一行都将作为一个独立的对象。
但是,Dremio 不支持“generate_series”。
有谁知道如何完成给定的任务?
问候
耳罩
编辑:
Table:
id
姓名
计数
0123
ABC
3
2345
EFG
0
3456
HIK
2
期望的输出:
id
姓名
0123
ABC
0123
ABC
0123
ABC
3456
HIK
3456
HIK
您可以生成一个“足够大”的数字列表,然后加入。假设 100 足够大 并且 您的原始 table 至少有 100 行:
with n as (
select row_number() over (order by null) as n
from t
limit 100
)
select t.*, n.n
from t join
n
on n.n <= t.cnt;
我正在尝试模仿“generate_series”的行为。 我的 table 包含各种字段。其中之一是“计数”。我想像“计数”一样频繁地输出每一行,因为每一行都将作为一个独立的对象。
但是,Dremio 不支持“generate_series”。
有谁知道如何完成给定的任务?
问候 耳罩
编辑:
Table:
id | 姓名 | 计数 |
---|---|---|
0123 | ABC | 3 |
2345 | EFG | 0 |
3456 | HIK | 2 |
期望的输出:
id | 姓名 |
---|---|
0123 | ABC |
0123 | ABC |
0123 | ABC |
3456 | HIK |
3456 | HIK |
您可以生成一个“足够大”的数字列表,然后加入。假设 100 足够大 并且 您的原始 table 至少有 100 行:
with n as (
select row_number() over (order by null) as n
from t
limit 100
)
select t.*, n.n
from t join
n
on n.n <= t.cnt;