我在用 random()
在redshift sql query中生成一个列,但是,当我在同一个查询中再次使用此列时,这些值与第一次生成的值不同(即每次在同一个查询中再次使用此列时,sql都会生成一个新的随机数),我想知道一旦这个随机数产生,我是否能保持它的值不变?谢谢!
一个简单的例子来解释我的问题:
select random() as a
, a as b
, a as c
, a as d
我希望 a
在上面的查询中,每次使用它时都应该是相同的,但是如果您真的运行上面的查询, a
, b
, c
以及 d
都不一样。
2条答案
按热度按时间wgmfuz8q1#
使用with块
pkmbmrz72#
我想你可以做到:
中的子查询
from
子句只能求值一次。cte有可能是类似的,但我不知道它们是否保证只被评估一次。也就是说,如果优化器设置不正确,可能会在不同的计算节点上产生不同的值。