당신은 짝수 번호에 숫자 정수 값으로 변환하고 줄여 2 그룹으로 날짜를 정상화 할 수있다. 첫 번째 / 2
은 val
유형이 정수인 경우 소수점 이하 자리가 잘리지 않으므로 val/2 * 2
이며, * 2
은 짝수로 정규화 된 경우를 제외하고는 원래 값으로 되돌립니다. 다음은 CTE 데이터 소스를 사용하여 결과를 정규화 및 그룹의 예는 다음과 같습니다
;with Data as (
select '1/1/2011' as [date], 1 as x union
select '1/1/2011' as [date], 2 as x union
select '1/1/2011' as [date], 3 as x union
select '1/1/2011' as [date], 4 as x union
select '1/1/2011' as [date], 5 as x union
select '1/1/2011' as [date], 6 as x union
select '1/1/2011' as [date], 7 as x union
select '1/1/2011' as [date], 8 as x union
select '1/1/2011' as [date], 9 as x union
select '1/1/2011' as [date], 10 as x union
select '1/2/2011' as [date], 11 as x union
select '1/2/2011' as [date], 12 as x union
select '1/2/2011' as [date], 13 as x union
select '1/2/2011' as [date], 14 as x union
select '1/2/2011' as [date], 15 as x union
select '1/3/2011' as [date], 16 as x union
select '1/3/2011' as [date], 17 as x union
select '1/3/2011' as [date], 18 as x union
select '1/3/2011' as [date], 19 as x union
select '1/3/2011' as [date], 20 as x union
select '1/3/2011' as [date], 21 as x union
select '1/3/2011' as [date], 22 as x union
select '1/3/2011' as [date], 23 as x union
select '1/4/2011' as [date], 24 as x union
select '1/4/2011' as [date], 25 as x union
select '1/4/2011' as [date], 26 as x
)
Select
cast(cast(cast(Date as datetime) as integer)/2 * 2 as datetime) as date,
count(x)
from data
group by cast(cast(Date as datetime) as integer)/2 * 2
출력 :
date (No column name)
2011-01-01 00:00:00.000 15
2011-01-03 00:00:00.000 11
어떻게 이틀이 함께 이동하는 결정합니까? 왜 1/1 & 1/2, 그리고 1/2 & 1/3이 아닌가? – mellamokb