아래 샘플 데이터를 게시하고 있습니다.SQL의 Row_Number에 대한 순위 지정
어떤 I 가지고하면 (ROW_NUMBER 함수를 사용하여 달성) 날짜 및 이름 열 번호에 기초하여 생성 된 행 번호이다. 지금 필요한 것은 Group_Num이라는 다른 파생 된 열로 각 그룹 (이 경우 3 개)의 번호를 만듭니다. 내 이름 열이 반복되지만 날짜 열 값이 변경된다는 사실을 고려하여 달성 할 수 있습니까?
미리 감사드립니다.
아래 샘플 데이터를 게시하고 있습니다.SQL의 Row_Number에 대한 순위 지정
어떤 I 가지고하면 (ROW_NUMBER 함수를 사용하여 달성) 날짜 및 이름 열 번호에 기초하여 생성 된 행 번호이다. 지금 필요한 것은 Group_Num이라는 다른 파생 된 열로 각 그룹 (이 경우 3 개)의 번호를 만듭니다. 내 이름 열이 반복되지만 날짜 열 값이 변경된다는 사실을 고려하여 달성 할 수 있습니까?
미리 감사드립니다.
확인. Row_number(), lag() 및 SUM()을 사용하여이 작업을 수행 할 수 있습니다.
select
Date,
Name,
Row_number()over(partition by Group_Num order by ROwiD) Row_Num,
Group_Num
from
(
SELECT * ,
SUM(R) OVER(ORDER BY RowID) Group_Num
FROM
(
select *,
Case When
lag(name) OVER (ORDER BY RowID) = name
then 0 else 1 end as R
from
(
select DATE,NAME,
row_number() OVER ( ORDER BY (select 1)) AS 'RowID'
from #TableName
)A
)B
)C
order by ROwiD
출력 :
감사합니다. 대답. 그러나 이것을 사용하면 Group_Num이 마지막 3 개의 행에 대해 "1"로 반환됩니다. 3 (이름이 같더라도)이 필요합니다. –
사용할 수 DENSE_RANK :
SELECT Date
, Name
, ROW_NUMBER() OVER(Partition By Name Order By Name, Date) as Row_Num
, DENSE_RANK() Over(order by Name) as Group_Num
FROM #Table
답변 해 주셔서 감사합니다. 그러나 이것을 사용하면 Group_Num이 마지막 3 개의 행에 대해 "1"로 반환됩니다. 3 (이름이 같더라도)이 필요합니다. –
사진을 제거하고 DDL + DML로 샘플 데이터를 추가하고,도를 보여주십시오 현재 가지고있는 쿼리. –
http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –