如何使用PostgreSQL列值和一些计算作为第二列值
我正在将一个巨大的数据集插入到SQL表中,我希望实现类似的功能如何使用PostgreSQL列值和一些计算作为第二列值,sql,postgresql,Sql,Postgresql,我正在将一个巨大的数据集插入到SQL表中,我希望实现类似的功能 SELECT generate_series(1,10) AS a, mod(generate_series(11,20),3) as b,mod(generate_series(21,30),5) as c; a | b | c ----+---+--- 1 | 2 | 1 2 | 0 | 2 3 | 1 | 3 4 | 2 | 4 5 | 0 | 0 6 | 1 | 1 7 | 2 | 2
SELECT generate_series(1,10) AS a, mod(generate_series(11,20),3) as b,mod(generate_series(21,30),5) as c;
a | b | c
----+---+---
1 | 2 | 1
2 | 0 | 2
3 | 1 | 3
4 | 2 | 4
5 | 0 | 0
6 | 1 | 1
7 | 2 | 2
8 | 0 | 3
9 | 1 | 4
10 | 2 | 0
(10 rows)
问题是我不想为b
和c
调用generate_series函数。我想取a
的值,对b
和c
执行mod,如下所示,甚至是有效的方式,但我无法理解这一点,我如何才能有效地执行,因为我将生成并保存100万条记录
SELECT generate_series(1,10) AS a, mod(a,3) as b,mod(a,5) as c;
使用
from
子句:
SELECT a, mod(a, 3) as b, mod(a, 5) as c;
FROM generate_series(1,10) gs(a)
使用
from
子句:
SELECT a, mod(a, 3) as b, mod(a, 5) as c;
FROM generate_series(1,10) gs(a)
你能解释一下gs(a)的目的吗?@KhubaibAhmad。这将
generate_series()
的返回值命名为gs.a
。您能解释一下gs(a)
的用途吗?@KhubaibAhmad。它将generate_series()
中的返回值命名为gs.a
。