목표 : 테이블의 현재 행을 가져와 해당 고객의 가장 최근 항목을 찾아 다음 항목에 추가하십시오. 가장 최근의 항목이 해당 행의 항목 1이면 다음 행으로 진행해야합니다. 논리는 항상 고객의 첫 행에 있어야합니다. 주문은 거래일을 기준으로하며 고객 ID별로 분할됩니다. 스크립트를 실행 한 후 원하는 결과 세트가 어떻게 보이는지 아래에 제공된 기본 데이터의 예.SQL Teradata - 첫 번째 행 데이터의 열 추가 등 제한 사항
제한 사항 : CRM 도구에서 작동하려면이 스크립트가 필요합니다. 테라 데이타의 Aprimo/CIM 그 말로는 CTE (With) 나 휘발성 테이블을 사용할 수 없습니다. 또한 테이블 볼륨 때문에 여러 조인을 자체적으로 만들고 싶지 않습니다.
내가 수행 한 작업 멀리 : 최상의 접근 방식은 창 함수를 활용하는 것일 수도 있지만 직접 중첩 된 case 문을 많이 생성하는 것입니다. 내가 찾고있는 대답을 얻는 더 좋은 방법이 있는지 정말 알고 싶었습니다. 나는 그것을 빨아 들여 그 자체로 합류해야 할 수도 있습니다.
빠른 시작 자료 표 :
CREATE VOLATILE TABLE Base
(
customer_id int
, trans_date date
, item varchar(1)
) ON COMMIT PRESERVE ROWS;
Insert Into Base (123,'2017-01-01','A');
Insert Into Base (123,'2017-01-02','B');
Insert Into Base (123,'2017-01-03','C');
Insert Into Base (123,'2017-01-04','D');
Insert Into Base (123,'2017-01-05','E');
Insert Into Base (999,'2017-01-06','F');
Insert Into Base (999,'2017-01-07','G');
Insert Into Base (999,'2017-01-08','H');