다른 데이터 소스에서 사전 추출 된 데이터 세트에서 작업을 위임 받았으며 현재이 데이터를 쿼리 할 수있는 액세스 권한 만 있습니다 (기본 데이터 분석을위한 Excel 현재 행 제한보다 큼). 기본적으로, 나는 세 가지 관련 필드가 있습니다타임 스탬프 추출을위한 SQL 쿼리
FK_ID = 트랜잭션의 상태와 관련된 거래
CD = 코드와 관련된 임의의 수 =의 타임 스탬프를
TIMESTAMP를 (단지 BEGIN과 END는 값입니다 가정) 거래
이제이 데이터 세트의 간단한 예 :
FK_ID CD TIMESTAMP
000012 END 2012-01-02-14.27.59.133612
000012 BEGIN 2012-01-02-14.27.57.176631
000015 END 2011-12-12-14.27.59.133612
000015 BEGIN 2011-12-11-14.27.59.133612
000019 END 2011-11-10-14.27.59.133612
000019 BEGIN 2011-11-09-14.27.59.133612
000019 END 2011-11-08-14.27.59.133612
000019 BEGIN 2011-11-07-14.27.59.133612
당신이 볼 수 있듯이, 그것은 버전이 아니다 y를 복잡하게하는 문제는 각 고유 FK_ID에 대한 BEGIN과 END 코드 사이의 타임 스탬프 차이를 계산 한 다음 그 차이를 집계하는 열을 생성해야하며 일부 FK_ID에 여러 타임 스탬프가 포함되어 있다는 사실도 고려해야합니다. BEGIN/END 쌍은 그들.
이제 쌍 이상의 것이있는 경우를 무시할 수있는 권한이 부여되었습니다. 무시하면 초기 쌍 수만 계산됩니다. 그러나 바람직하지 않습니다.
시간이 대략 목표 내에 있는지를 결정하는 총 평균 시간을 결정하기 위해 이러한 차이점을 알아야합니다.
각 FK_ID 쌍 또는 제안 할 다른 자동화 된 방법에 대해이 시간 소인의 차이점을 알아내는 가장 좋은 쿼리는 무엇입니까?
SQL을 이해하고 C#으로 충분히 익숙하지만 시간 프레임 및 기타 요소가 논리적으로이 문제를 해결할 수있는 능력을 망가 뜨리고 있습니다. 테이블 이름을 가정
는
어떤 RDBMS를 사용하고 있습니까? –
이게 무슨 뜻인지 모르겠다. Access로 가져와야하는 스프레드 쉬트에만 접근 할 수 있었다. 소스 데이터베이스에 액세스 할 수 없으며 인프라로 인해 액세스가 불가능하고 메인 프레임 작업 이외의 다른 방법으로 쿼리를 실행할 수 없습니다. –
동일한 fk_id의 타임 스탬프에 겹침이 없도록 할 수 있습니까? 즉, 모든 START 뒤에 STOP이오고 다른 START는 시작되지 않습니다. –