반응형
SQL에서 그룹당 증분 그룹 번호를 반환하는 방법
SQL에서 데이터 쿼리를 만들어 공통 날짜 시간에 그룹화된 행 그룹에 증분 번호를 매기고 다음 날짜 시간에 "그룹 번호"가 계속 증가하도록 하고 싶습니다.이러한 "그룹 번호"는 구문별 파티션을 사용할 때 본 것처럼 각 그룹에 대해 재설정되지 않아야 합니다.다음은 제 샘플 데이터입니다.
ts_DateTime |ID |Value|RowFilter|RequiredResult
--------------------------
2013/01/09 09:23:16 |8009 |0 |1 |1
2013/01/09 09:23:16 |8010 |0 |2 |1
2013/01/09 09:23:16 |8026 |0 |3 |1
2013/01/09 09:23:22 |8026 |0 |1 |2
2013/01/09 09:23:28 |8009 |0 |1 |3
2013/01/09 09:23:28 |8010 |0 |2 |3
2013/01/09 09:23:28 |8026 |0 |3 |3
2013/01/09 09:27:03 |8009 |0 |1 |4
2013/01/09 09:27:03 |8010 |0 |2 |4
2013/01/09 09:27:03 |8026 |0 |3 |4
2013/01/09 09:27:09 |8009 |0 |1 |5
2013/01/09 09:27:09 |8010 |0 |2 |5
2013/01/09 09:27:09 |8026 |0 |3 |5
2013/01/09 09:27:15 |8009 |0 |1 |6
2013/01/09 09:27:15 |8010 |0 |2 |6
2013/01/09 09:27:15 |8026 |0 |3 |6
이러한 결과를 얻기 위해 사용하는 쿼리는 다음과 같습니다.
select hl.ts_DateTime, hl.Tagname as [ID], hl.TagValue as [Value],
ROW_NUMBER() OVER (PARTITION BY hl.ts_datetime ORDER BY hl.tagname) AS RowFilter
from Table1 hl
기본적으로 RowFilter 열을 보면 다음과 같이 고유한 ROW 번호가 표시됩니다.ts_DateTime
칸막이를 치다내가 실제로 필요한 것은 각각의 사람들을 위한 것입니다.ts_DateTime
파티션을 분할합니다. RowFilter 열은 Required 결과 열과 같아야 합니다.
사용하면 안 됩니다.ROW_NUMBER()
,
- 사용하다
DENSE_RANK()
대신 - 제거한다.
PARTITION BY
쿼리,
SELECT hl.ts_DateTime,
hl.Tagname as [ID],
hl.TagValue as [Value],
DENSE_RANK() OVER (ORDER BY ts_datetime) AS RowFilter
FROM Table1 hl
ORDER BY RowFilter
제 생각에 당신은 이것을 찾고 있는 것 같습니다.
ROW_NUMBER() OVER (PARTITION BY hl.id ORDER BY hl.ts_DateTime) AS RowFilter
여기 제 대답이 있습니다, Mr.Chris Balance:
select
hl.ts_DateTime, hl.Tagname as [ID], hl.TagValue as [Value],
ROW_NUMBER() OVER (PARTITION BY hl.ts_datetime ORDER BY hl.tagname) AS RowFilter,
DENSE_RANK() OVER (PARTITION BY hl.ts_datetime ORDER BY hl.Tagname) AS RequiredResult
from Table1 h1
--이것을 사용해 보세요. 저에게 효과가 있습니다.
언급URL : https://stackoverflow.com/questions/14359749/how-to-return-a-incremental-group-number-per-group-in-sql
반응형
'programing' 카테고리의 다른 글
Sundown이 블록 인용문(">"로 시작하는 줄)을 렌더링하려면 어떻게 해야 합니까? (0) | 2023.07.13 |
---|---|
SQL Server 2008의 고유 키 대 고유 인덱스 (0) | 2023.07.13 |
git add, commit 및 push 명령을 하나로 통합하시겠습니까? (0) | 2023.07.13 |
mongodb 덤프가 실패하고 DNS 메시지를 마샬링 해제할 수 없음 (0) | 2023.07.13 |
Firebase 인증을 사용하여 Float에서 사용자를 로그아웃하는 방법 (0) | 2023.07.13 |