홈>
시작 날짜와 종료 날짜에 연결된 많은 키가있는 대규모 직원 데이터 세트가 있습니다. 시작 날짜와 종료 날짜 사이에 겹치지 않고 고유 항목 집합으로 그룹화하고 싶습니다. 예를 들어 다음과 같이 출력을 원합니다.
EmpID Name Status Team Start End
1 Zoe Employed Team01 2018-01-01 2018-01-04
1 Zoe CareerBreak Team01 2018-01-05 2018-01-07
1 Zoe Employed Team01 2018-01-08 2018-01-10
2 Bob Employed Team01 2018-01-01 2018-01-03
2 Bob Employed Team02 2018-01-04 2018-01-10
다음 형식 중 하나로 데이터를 쉽게 얻을 수 있습니다.
EmpID Name Status Start End
1 Zoe Employed 2018-01-01 2018-01-04
1 Zoe CareerBreak 2018-01-05 2018-01-07
1 Zoe Employed 2018-01-08 2018-01-10
1 Zoe Team01 2018-01-01 2018-01-10
2 Bob Employed 2018-01-01 2018-01-10
2 Bob Team01 2018-01-01 2018-01-03
2 Bob Team02 2018-01-04 2018-01-10
또는
EmpID Name Status Team Date
1 Zoe Employed Team01 2018-01-01
1 Zoe Employed Team01 2018-01-02
1 Zoe Employed Team01 2018-01-03
1 Zoe Employed Team01 2018-01-04
1 Zoe CareerBreak Team01 2018-01-05
1 Zoe CareerBreak Team01 2018-01-06
1 Zoe CareerBreak Team01 2018-01-07
1 Zoe Employed Team01 2018-01-08
1 Zoe Employed Team01 2018-01-09
1 Zoe Employed Team01 2018-01-10
2 Bob Employed Team01 2018-01-01
2 Bob Employed Team01 2018-01-02
2 Bob Employed Team01 2018-01-03
2 Bob Employed Team02 2018-01-04
2 Bob Employed Team02 2018-01-05
2 Bob Employed Team02 2018-01-06
2 Bob Employed Team02 2018-01-07
2 Bob Employed Team02 2018-01-08
2 Bob Employed Team02 2018-01-09
2 Bob Employed Team02 2018-01-10
각 날짜 레코드를 반복하고 비교하여 할 수있었습니다. 그러나 이것은 분명히 너무 오래 걸립니다.
그룹화로 인해 발생하는 문제는 변경 전후의 세부 사항이 동일한 것입니다. 따라서 그룹화에서 날짜를 제외하여 최소 및 최대 날짜를 사용하면 다음을 얻을 수 있습니다.
EmpID Name Status Team Start End
1 Zoe Employed Team01 2018-01-01 2018-01-10
1 Zoe CareerBreak Team01 2018-01-05 2018-01-07
3 개의 항목이어야합니다. 나는 이것을하는 다른 방법을 생각할 수 없다. 그룹화는 이것에 대한 옵션이 아니지만 시작점이 될 수 있다고 확신한다. 나는 연구를 스스로하는 것보다 더 행복하지만, 붙어 있고 무엇을 볼지에 대한 힌트가 필요합니다. (물론 이것은 매우 간단한 데이터 블록이지만 문제를 설명하기에 충분할 것입니다)
-
답변 # 1
관련 자료
- angular10 - Angular CSS Layout이 적용되지만 결과가 없음
- r - 날짜 벡터에서 유사한 날짜 선택 및 그룹화
- 중단 날짜없이 자바 스크립트 전체 복사
- python - 그룹화 인덱스가없는 pandas 피벗 테이블
- html - css 위치를 사용하지 않고 png 이미지 겹치기 - 상대
- Application Insights에서 결과를 그룹화하여 Azure Kusto를 정렬하는 방법은 무엇입니까?
- Javascript에서 월별로 날짜 그룹화
- javascript - 시간, 분, 초없이 날짜를 표시하는 데 문제가 있습니다
- javascript - 첫 번째 일치로 끝나지 않고 모든 결과를 표시하는 방법은 무엇입니까?
- c# - LINQ 그룹화 결과 및 특정 순서로 정렬
- html - z- 색인을 사용하지 않고 이미지가 헤더/탐색 막대와 겹치지 않도록하는 방법이 있습니까?
- android layout - 겹치지 않고 음수 여백을 사용하는 방법은 무엇입니까?
- oracle - 날짜가 서로 중복되는 레코드 찾기
- r - 그룹화 할 때 기능에서 여러 결과 할당
- Java에서 중복되지 않고 목록의 요소를 하위 목록으로 그룹화
관련 질문
- sql - 특정 접두사가있는 테이블에서 데이터를 가져 오는 방법은 무엇입니까?
- sql - 동일한 임시 테이블 값 비교
- sql - mssql 서버 - 키워드 'else'근처의 잘못된 구문
- sql server - 누군가 SQL 에서이 조인 구문으로 나를 도울 수 있습니까? 서로 뒤에 두 개의 JOINS가 있습니다
- sql - Case 표현식은 "날짜 데이터 유형을 datetime 데이터 유형으로 변환하여 범위를 벗어난 값을 생성"합니다
- sql - 하위 쿼리와 조인 성능
- sql - 밀리 초없이 varchar를 datetime으로 변환
- sql server - SQL에서 DATETIME을 varchar로 변환
- sql server - SQL 업데이트 INNER JOIN의 키워드 'INNER'근처에 잘못된 구문이 있습니다
- 열 변경으로 SQL Server에서 순위 지정
이것은 그룹과 섬 문제입니다. 날짜에서 일련의 숫자를 빼서 해결할 수 있습니다. 이는 연속 날짜에 대해 일정합니다. 긴 형식의 데이터를 사용합니다 :