如何为SQL执行相当于双for循环的追加
我正在用SQL(Presto,也是SQL的新成员)设置这个表,它有两列,如何为SQL执行相当于双for循环的追加,sql,dataframe,presto,Sql,Dataframe,Presto,我正在用SQL(Presto,也是SQL的新成员)设置这个表,它有两列,col1和col2这两列是从另外两个现有表table1和table2生成的。为了简单起见,假设table1中的col1有3个值,而table2中的col2有2个值。我希望我要创建的表如下所示(我们称之为table3,我将使用col1.1表示该列中的第一个值,依此类推): 我知道如何在Python中像这里一样使用Pandas(虚拟示例): 表输出: col1 col2 0 1 sam 1 1 jo
col1
和col2
这两列是从另外两个现有表table1
和table2
生成的。为了简单起见,假设table1
中的col1
有3个值,而table2
中的col2
有2个值。我希望我要创建的表如下所示(我们称之为table3
,我将使用col1.1
表示该列中的第一个值,依此类推):
我知道如何在Python中像这里一样使用Pandas(虚拟示例):
表输出:
col1 col2
0 1 sam
1 1 john
2 2 sam
3 2 john
4 3 sam
5 3 john
基本上,它应该采用上表的格式。我已经反复尝试了
UNION ALL
,但我不太确定我是否走上了正确的道路我想你想要一个交叉连接
:
select row_number() over (order by t1.col1, t2.col2) as id, t1.col1, t2.col2
from table1 t1 cross join
table2 t2;
row\u number()
表示第一列应该是数据的一部分
col1 col2
0 1 sam
1 1 john
2 2 sam
3 2 john
4 3 sam
5 3 john
select row_number() over (order by t1.col1, t2.col2) as id, t1.col1, t2.col2
from table1 t1 cross join
table2 t2;