안녕하세요. Postgres 디비를 사용하다가 with 절 구문 관련해서 궁금한 사항이 있습니다.
아래의 with 구문이 t로 데이터 셋을 만들고 해당 t를 union all로 2번 수행을 했는데,
결과 값이 다르게 나옵니다.
이말은 해당 with 절이 해당 데이터 셋을 가지고 있는게 아니라,
쿼리를 가지고 있어서 2번 수행했다는 내용인 것 같습니다.
이게 원래 정상인가요? ;; oracle로 테스트 했을 때는 같은 값이 옵니다.
# 쿼리 #
with t as ( select seq,random() as val from generate_series (1,3) seq)
select * from t
union all
select * from t
# 결과 값 #
1|0.104827039409429
2|0.757813568692654
3|0.737501399125904
1|0.141150838229805
2|0.866815359797329
3|0.714934221468866
|