with
temp as
(
select ...
(case when ....then..else... end) as dist_1,
... as goods_1,
from ...
where ...
)
select *
from temp gg
where (dist_1 = '회원 or dist_1 = '비회원' )and
gg.order_no in (select order_no from temp where goods_1 = '가방')
order by gg.order_no
위의 구문을 실행해서 아래와 같은 결과를 얻었습니다. (goods_1 = '가방'을 포함하고 있는 order_no 추출)
order_no | id | dist_1 | goods_1 |
1000 | AA | 회원 | 가방 |
1000 | AA | 회원 | 휴대폰 |
1000 | AA | 회원 | 책상 |
2000 | BB | 비회원 | 가방 |
3000 | CC | 회원 | 가방 |
저는 이 상태에서 order_no의 unique한 count '3'을 도출하고 싶은데, 추가로 어떻게 구문을 작성하면 될까요?
with temp as ( select ... (case when ....then..else... end) as dist_1, ... as goods_1, from ... where ... ) , temp_2 as ( select * from temp gg where (dist_1 = '회원 or dist_1 = '비회원' )and gg.order_no in (select order_no from temp where goods_1 = '가방') order by gg.order_no ) select ... from temp_2 where ...