2010-12-27 2 views
0

시간 열을 초과하는 파티션을 사용하는 쿼리가 있는데 예상치 못한 결과가 발생했는데 여기에 무슨 문제가 있습니까? 왜 RN에 1 대가 넘을 수 있습니까? (: 00 : 02 : 21 일 (100) 및 (21)에 대한 다른 : 00 : 02 : 600)이 파티션의 문제점

SELECT TOP 500 
    ROW_NUMBER() OVER(
       PARTITION BY [Date], CAST([Time] AS Time(0)) 
       ORDER BY [DATE] ASC, CAST([Time] AS Time(0)) ASC 
       ) RN, 
       [DATE], 
       [Time]    
FROM [DB]..[TABLE] 
ORDER BY [Date] ASC, 
     [Time] ASC, 
     [RN] ASC 

결과 : 당신은 라운드 귀하의 주문에 대한 time(0)에 캐스팅 사용하는

**1 2010-10-03 21:00:02.100** 
2 2010-10-03 21:00:02.100 
3 2010-10-03 21:00:02.200 
4 2010-10-03 21:00:02.200 
5 2010-10-03 21:00:02.200 
4 2010-10-03 21:00:02.500 
**1 2010-10-03 21:00:02.600** 
2 2010-10-03 21:00:02.600 
3 2010-10-03 21:00:02.600 
5 2010-10-03 21:00:02.700 
6 2010-10-03 21:00:02.700 
7 2010-10-03 21:00:02.700 
8 2010-10-03 21:00:02.700 
9 2010-10-03 21:00:02.700 
10 2010-10-03 21:00:02.700 
11 2010-10-03 21:00:02.700 
12 2010-10-03 21:00:02.700 
13 2010-10-03 21:00:02.700 
14 2010-10-03 21:00:02.700 
15 2010-10-03 21:00:02.700 
16 2010-10-03 21:00:02.700 
17 2010-10-03 21:00:02.700 
18 2010-10-03 21:00:02.700 
19 2010-10-03 21:00:02.700 
20 2010-10-03 21:00:02.700 
21 2010-10-03 21:00:02.700 
22 2010-10-03 21:00:02.700 
+1

코드의 형식을 중괄호 버튼을 사용하세요 ... – gbn

+0

는 지금 시도,하지만 어떻게 당신은 구문 색상을 얻을 수 있습니까? – nojetlag

답변

2

을 (truncates?) 두 번째 정밀도로 시간. 광고로는 ... 정확히 작동하고

편집 :

그것은

내 생각 엔 ... BY 같은 BY 파티션 및 ORDER을 가지고 이해되지 않는다

당신이에 의해 분할하려고하는 것입니다 두 번째, 그리고 원하는 구간의 행 번호

이 시도 :

ROW_NUMBER() OVER(
      PARTITION BY [Date], CAST([Time] AS Time(0)) 
      ORDER BY [DATE], [Time] 
      ) RN 

당신은 0.5 초 경계를 넘어 중복 행 번호를 받으면, forc에 이것을 사용 전자보다는 ROUND에게

ROW_NUMBER() OVER(
      PARTITION BY [Date], CAST([Time] - '00:00:00.5000' AS Time(0)) 
      ORDER BY [DATE], [Time] 
      ) RN 
0

감사 의견을 많이 절단, 캐스팅을 반올림하고, 따라서 그것의 작동 (나에게 두 배의 일을 제공)하지 않는 것이 밝혀졌습니다. [TIME]을 (를) 뺀 것이 잘못되었습니다. 오류가 발생했습니다. 마지막에 내가이 같은 원하는 작업을 진행하기 위해이 코드를 사용 :

ROW_NUMBER() OVER( PARTITION BY CONVERT(nvarchar(8), [Time], 8) ORDER BY [Date], [Time]) RN FROM [DB]..[TABLE]