[SQL] 어떻게 연속 범위에 나 나 그룹을
SQL어떻게 연속 범위에 나 나 그룹을
나는 몇 가지 기본적인 SQL을 알고 있지만,이 사람은 내 능력 밖입니다. 나는 높고 낮은하지만 주사위를 보았다. 나는 다음과 같은 데이터 뷰를 필요로 해, 나는 응용 프로그램 계층 코드에서이 작업을 수행 할 수 있습니다. 그러나 불행하게도이 특정 하나, 코드는 데이터 계층에 넣어해야합니다.
나는 T-SQL을 사용하고 있습니다.
표
Date Crew DayType
01-02-11 John Doe SEA
02-02-11 John Doe SEA
03-02-11 John Doe SEA
04-02-11 John Doe HOME
05-02-11 John Doe HOME
06-02-11 John Doe SEA
이 같은 뷰를 필요로
DateFrom DateTo Name DayType
01-02-11 03-02-11 John Doe SEA
04-02-11 05-02-11 John Doe HOME
06-02-11 06-02-11 John Doe SEA
불행하게도 기본 테이블 형식의 쇼에있을 응용 프로그램 계층이 필요합니다. 이 쿼리에서 할 수 있습니까?
감사
누가 복음
해결법
-
==============================
1.
WITH q AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY crew, dayType ORDER BY [date]) AS rnd, ROW_NUMBER() OVER (PARTITION BY crew ORDER BY [date]) AS rn FROM mytable ) SELECT MIN([date]), MAX([date]), crew AS name, dayType FROM q GROUP BY crew, dayType, rnd - rn
이 문서가 관심을 가질 수 있습니다 :
-
==============================
2.
WITH grouped AS ( SELECT *, grp = DATEDIFF(day, 0, Date) - ROW_NUMBER() OVER (PARTITION BY Crew, DayType ORDER BY Date) FROM @testtable ) SELECT DateFrom = MIN(Date), DateTo = MAX(Date), Name = Crew, DayType FROM grouped GROUP BY Crew, DayType, grp;
기본적으로, Quassnoi의 솔루션,하지만 하나 ROW_NUMBER 적은 수확량에게 더 나은 실행 계획을 사용하는 것과 동일합니다.
-
==============================
3.
SELECT MIN(Date) AS DateFrom,MAX(Date) AS DateTo, Crew, DayType FROM yourTableName GROUP BY Crew, DayType
-
==============================
4.뭔가 같이 :
뭔가 같이 :
SELECT Crew, DayType, MIN(Date) AS SomeDate1, MAX(Date) AS SomeDate2 FROM Mytable GROUP BY Crew, DayType
-
==============================
5.
Select Min(Date) DateFrom, Max(Date) DateTo, Crew Name,DayType From Mytable Group By Crew,DayType
이 시도.
from https://stackoverflow.com/questions/5662545/how-do-i-group-on-continuous-ranges by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 백틱 및 SQL 문에서 대괄호의 차이점은 무엇입니까? (0) | 2020.04.08 |
---|---|
[SQL] 액세스-SQL : 내부는 여러 테이블에 가입 (0) | 2020.04.08 |
[SQL] C #을 사용 데이터베이스에 이미지를 저장하는 방법 [마감] (0) | 2020.04.08 |
[SQL] 엔티티 프레임 워크 오류 : 테이블의 ID 열에 대한 명시 적 값을 삽입 할 수 없습니다 (0) | 2020.04.08 |
[SQL] LINQ에서 SQL ISNULL의 등가? (0) | 2020.04.08 |