SELECT COUNT(DISTINCT CUST_ID)
from(
SELECT
CUST_ID
,ORD_DT
,ORD_NO
,YMD
,사업부
,DENSE_RANK() OVER(PARTITION BY CUST_ID ORDER BY ORD_DT , ORD_NO) AS 순서
FROM table
GROUP BY CUST_ID, ORD_DT, ORD_NO, YMD, 사업부
) A
WHERE 1=1
AND 순서= 1
AND YMD BETWEEN '20210101' AND '20211231'
AND 사업부 = '1사업부'
;
여기서 사업부가 1인 첫 구매고객 수를 구했는데요.
문제는 "1사업부 첫구매 고객 중 타 다른사업부 교차구매 고객 수"를 어떻게 구해야 하나요?
의미가 조금 모호하긴 하지만, 대략 이런 식으로 하면 되지 않을까요.
select distinct cust_id from ( select cust_id from ( select cust_id, ymd, rank() over (partition by cust_id order by ymd) 순서 from table where 사업부 = 1 ) where 순서 = 1 and ymd between '20210101' and '20211231' ) a, ( select distinct cust_id from table where 사업부 in (2,3,4) ) b where a.cust_id = b.cust_id