센터로 들어와 컨설턴트 (CSO)로 전송되는 통화 흐름을 나타내는 다음 데이터가 있습니다. 내가 데이터를 추출하기 위해 MS SQL 관리 Studio 2005을 사용하고여러 열과 행의 데이터를 기반으로 데이터 추출
CallID Sequence Action Location Input NextLocation
1135 0 CallStart NULL NULL NULL
1135 1 MenuStart EFTPosHelpDesk NULL NULL
1135 2 KeyPress EFTPosHelpDesk 3 TransferCSO
1135 3 TransferEntry EFTPosHelpDesk NULL NULL
1135 4 TransferFlag NULL NULL NULL
1135 5 AccessNum NULL NULL NULL
1135 6 Transfer NULL NULL NULL
1135 7 Hangup NULL NULL NULL
그러나 데이터 자체는 MS SQL 2000 서버에 저장됩니다.
사실상 데이터베이스에 수백만 건의 전화가 기록되어 고객이 CSO로 이전 한 CallID의 정보를 추출해야합니다.
@Sequence 2 -> NextLocation = 'TansferCSO'
@Sequence 3 -> Action = 'TransferEntry'
@Sequence 4 -> Action = 'TransferFlag'
@Sequence 5 -> Action = 'AccessNum'
@Sequence 6 -> Action = 'Transfer'
@Sequence 7 -> Action = 'Hangup'
... 그리고 그 순서에 항상 있지만, "순서"가 "위치"어떤 통화로 달라집니다 번호와 다음과 같은 CSO으로 옮겨졌다 내게 전화를 알려줍니다 대상 데이터가 정확하게 평균 50-70 걸음을 달릴 수 있고 우리는 100 개의 IVR (위치)을 가지고 있습니다.
저는 SQL에 익숙하지 않은데, FETCH와 IF/ELSE를 사용했지만 성공하지 못했습니다. ROW_NUMBER()는 MS SQL2000 서버에있는 데이터로 인해 작동하지 않습니다.
모든 예제 또는 조언을 주시면 감사하겠습니다.
초기 시퀀스 번호를 예측할 수없는 경우에도 연속 된 시퀀스 번호에서 작업 패턴이 항상 발생합니까? – HABO
안녕 얘들 아. 예, 연속적으로 발생하지만 번호는 다를 수 있습니다. 예를 들어 NextLocation의 TransferCSO가 시퀀스 33에서 발생할 수 있으므로 34 ~ 38 번 시퀀스는 올바른 "액션"을 찾아야합니다. – CoderX71
나는 테이블에 5 개의 'JOIN'이 나오는 것을 느낍니다. 각각에 대한 조건은 이전 순서 + 1과 다음 예상 조치입니다. 'CallId' /'Sequence'에 인덱스를 넣고'Action'을 포함하면 같은 날의 성능을 제공 할 수 있습니다. 진짜 속임수는 flukey logger를 다루기에 충분한 경사를 조절하고 있습니다. – HABO