반응형
PARTITION BY 1은 무엇을 의미합니까?
첫 번째 FETCH 직후에 결과 세트의 총 행 수가 필요한 커서 쌍의 경우(일부 시행착오 후) 아래 쿼리가 발생했습니다.
SELECT
col_a,
col_b,
col_c,
COUNT(*) OVER( PARTITION BY 1 ) AS rows_in_result
FROM
myTable JOIN theirTable ON
myTable.col_a = theirTable.col_z
GROUP BY
col_a, col_b, col_c
ORDER BY
col_b
쿼리 출력이 X 행이면 rows_in_result가 이를 정확하게 반영합니다.
- PARTITION BY 1은 무엇을 의미합니까?
- 아마 데이터베이스에 결과를 각각 1행씩 분할하라고 지시할 것이라고 생각합니다.
PARTITION BY의 일반적이지 않은 사용입니다.쿼리가 123개의 행을 모두 반환할 경우 각 행의 rows_in_result 값이 123이 되도록 모든 항목을 동일한 파티션에 배치합니다.
따라서 이는 보다 간결한 것과 같습니다.
COUNT(*) OVER ()
데이터베이스는 매우 자유롭게 제한을 추가할 수 있습니다.OVER()
절가끔, 어느 쪽이든.PARTITION BY [...]
및/또는ORDER BY [...]
집계 함수에 따라 필수 절입니다.PARTITION BY 1
구문 무결성에 사용되는 더미 절일 수 있습니다.다음 두 가지는 일반적으로 동일합니다.
[aggregate function] OVER ()
[aggregate function] OVER (PARTITION BY 1)
그러나 Sybase SQL Anywhere 및 CUBRID는 이를 해석합니다.1
열 인덱스 참조로서, 에서 가능한 것과 유사합니다.ORDER BY [...]
절이것은 쿼리의 투영에 평가 순서를 부과하기 때문에 약간 놀라운 것으로 보일 수 있습니다.당신의 경우, 이것은 다음이 동등하다는 것을 의미합니다.
COUNT(*) OVER (PARTITION BY 1)
COUNT(*) OVER (PARTITION BY col_a)
다른 데이터베이스의 해석에서 이러한 특이한 편차를 통해 더 복잡한 그룹화 표현식을 참조할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3338415/what-does-partition-by-1-mean
반응형
'programing' 카테고리의 다른 글
활동의 내용 보기를 가져오는 방법은 무엇입니까? (0) | 2023.07.26 |
---|---|
왜 이 "Hello, World!" 자바스크립트 코드 조각이 허용 가능한 프로그램 명령어로 인식됩니까? (0) | 2023.07.26 |
((보이드(*)0x1000)();'는 무슨 뜻입니까? (0) | 2023.07.26 |
JSON을 쓸 수 없습니다. 역할 컬렉션을 게으르게 초기화하지 못했습니다. (0) | 2023.07.26 |
MariaDB 커넥터 vs MySQLDB 커넥터 - 트랜잭션 문제 (0) | 2023.07.21 |