이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.Postgresql: Tài liệu: 17: 9.21. Hàm tổ토토 hợp버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.20. 와이즈 토토 함수

와이즈 토토 함수입력 값 세트에서 단일 결과를 계산합니다. 내장된 범용 와이즈 토토 함수는 다음에 나열되어 있습니다.표 9.52및 통계 와이즈 토토표 9.53. 내장된 그룹 내 정렬 집합 와이즈 토토 함수는 다음과 같습니다.표 9.54그룹 내에 내장된 가상 집합이 있는 동안표 9.55. 와이즈 토토 함수와 밀접하게 관련된 그룹화 작업은 다음과 같습니다.표 9.56. 와이즈 토토 함수에 대한 특수 구문 고려 사항은 다음에서 설명됩니다.섹션 4.2.7. 문의PostgreSQL : 문서 : 10 : 2.7. 토토 결과 기능추가 소개 정보를 확인하세요.

표 9.52. 범용 와이즈 토토 함수

기능 인수 유형 반환 유형 부분 모드 설명
array_agg(표현) 배열이 아닌 모든 유형 인수 유형의 배열 아니요 널을 포함한 입력 값이 배열로 연결됨
array_agg(표현) 모든 배열 유형 인수 데이터 유형과 동일 아니요 하나의 더 높은 차원의 배열로 연결된 입력 배열(입력은 모두 동일한 차원을 가져야 하며 비어 있거나 null일 수 없음)
평균(표현) 작은int, int, 비긴트, 진짜, 배정밀도, 숫자또는간격 숫자정수형 인수의 경우,배정밀도부동 소수점 인수의 경우, 그렇지 않으면 인수 데이터 유형과 동일 null이 아닌 모든 입력 값의 평균(산술 평균)
bit_and(표현) smallint, int, 비긴트또는비트 인수 데이터 유형과 동일 null이 아닌 모든 입력 값의 비트 AND, 또는 없으면 null
bit_or(표현) smallint, int, 비긴트또는비트 인수 데이터 유형과 동일 null이 아닌 모든 입력 값의 비트별 OR, 또는 없으면 null
bool_and(표현) 부울 부울 모든 입력 값이 true이면 true, 그렇지 않으면 false
bool_or(표현) 부울 부울 적어도 하나의 입력 값이 true이면 true, 그렇지 않으면 false
개수(*) 비긴트 입력 행 수
개수(표현) 모든 비긴트 값이 있는 입력 행 수표현널이 아닙니다
모든(표현) 부울 부울 동등함bool_and
json_agg(표현) 모든 json 아니요 null을 포함한 값을 JSON 배열로 와이즈 토토합니다.
jsonb_agg(표현) 모든 jsonb 아니요 Null을 포함한 값을 JSON 배열로 와이즈 토토합니다.
json_object_agg(이름, ) (아무거나, 아무거나) json 아니요 이름/값 쌍을 JSON 객체로 집계합니다. 값은 null일 수 있지만 이름은 될 수 없습니다.
jsonb_object_agg(이름, ) (아무거나, 아무거나) jsonb 아니요 이름/값 쌍을 JSON 객체로 집계합니다. 값은 null일 수 있지만 이름은 될 수 없습니다.
최대(표현) 모든 숫자, 문자열, 날짜/시간, 네트워크, 열거형 유형 또는 이러한 유형의 배열 인수 유형과 동일 최대값표현null이 아닌 모든 입력 값에 걸쳐
분(표현) 모든 숫자, 문자열, 날짜/시간, 네트워크, 열거형 유형 또는 이러한 유형의 배열 인수 유형과 동일 최소값표현null이 아닌 모든 입력 값에 걸쳐
string_agg(표현, 구분자) (텍스트, 텍스트) 또는 (바이테아, 바이테아) 인수 유형과 동일 아니요 문자열로 연결되고 구분 기호로 구분된 null이 아닌 입력 값
합계(표현) 작은int, int, 비긴트, 진짜, 배정밀도, 숫자, 간격, 또는 비긴트forsmallint또는int인수,숫자for비긴트인수, 그렇지 않으면 인수 데이터 유형과 동일 합계표현null이 아닌 모든 입력 값에 걸쳐
xmlagg(표현) xml xml 아니요 널이 아닌 XML 값의 연결(또한 참조섹션 9.14.1.7)

다음을 제외하고는 주의해야 합니다.개수, 이 함수는 행이 선택되지 않은 경우 null 값을 반환합니다. 특히,합계모든 행은 예상대로 0이 아닌 null을 반환하며array_agg입력 행이 없는 경우 빈 배열이 아닌 null을 반환합니다.합체함수는 필요한 경우 null을 0이나 빈 배열로 대체하는 데 사용할 수 있습니다.

지원하는 와이즈 토토 함수부분 모드병렬 와이즈 토토와 같은 다양한 최적화에 참여할 수 있습니다.

참고

부울 집계bool_and그리고bool_or표준 SQL 와이즈 토토에 해당모든그리고아무거나또는일부. 에 관해서는아무거나그리고일부, 표준 구문에 모호성이 내장된 것 같습니다.

SELECT b1 = ANY((SELECT b2 FROM t2 ...)) FROM t1 ...;

여기모두하위 쿼리가 부울 값이 있는 하나의 행을 반환하는 경우 하위 쿼리를 도입하거나 와이즈 토토 함수로 간주될 수 있습니다. 따라서 이러한 집합체에는 표준 이름을 부여할 수 없습니다.

참고

다른 SQL 데이터베이스 관리 시스템 작업에 익숙한 사용자는 다음의 성능에 실망할 수 있습니다.개수테이블 전체에 적용될 때 집계됩니다. 다음과 같은 쿼리:

sometable에서 SELECT 개수(*);

테이블 크기에 비례하는 노력이 필요합니다.PostgreSQL테이블 전체 또는 테이블의 모든 행을 포함하는 인덱스 전체를 스캔해야 합니다.

와이즈 토토 함수array_agg, json_agg, jsonb_agg, json_object_agg, jsonb_object_agg, string_aggxmlagg은 유사한 사용자 정의 와이즈 토토 함수와 마찬가지로 입력 값의 순서에 따라 의미 있는 결과 값이 달라집니다. 이 순서는 기본적으로 지정되지 않지만 다음을 작성하여 제어할 수 있습니다.주문 기준다음과 같이 집계 호출 내의 절섹션 4.2.7. 또는 정렬된 하위 쿼리에서 입력 값을 제공하는 것이 일반적으로 작동합니다. 예를 들면:

SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS 탭;

외부 쿼리 수준에 조인과 같은 추가 처리가 포함된 경우 이 접근 방식이 실패할 수 있다는 점에 주의하십시오. 이로 인해 와이즈 토토가 계산되기 전에 하위 쿼리의 출력이 재정렬될 수 있기 때문입니다.

표 9.53통계 분석에 일반적으로 사용되는 와이즈 토토 함수를 보여줍니다. (이들은 더 일반적으로 사용되는 집계 목록이 복잡해지는 것을 피하기 위해 분리되었습니다.) 설명에 언급된 곳N는 모든 입력 식이 null이 아닌 입력 행의 개수를 의미합니다. 모든 경우에 계산이 의미가 없으면 null이 반환됩니다.N0입니다.

표 9.53. 통계용 와이즈 토토 함수

기능 인수 유형 반환 유형 부분 모드 설명
corr(Y, X) 배정밀도 배정밀도 상관계수
covar_pop(Y, X) 배정밀도 배정밀도 인구 공분산
covar_samp(Y, X) 배정밀도 배정밀도 표본 공분산
regr_avgx(Y, X) 배정밀도 이중 정밀도 독립변수의 평균(합계(X)/N)
regr_avgy(Y, X) 배정밀도 배정밀도 종속변수의 평균(합계(Y)/N)
regr_count(Y, X) 배정밀도 비긴트 두 식이 모두 Null이 아닌 입력 행 수
regr_intercept(Y, X) 배정밀도 배정밀도 (에 의해 결정된 최소 제곱 피팅 선형 방정식의 y 절편X, Y) 쌍
regr_r2(Y, X) 배정밀도 배정밀도 상관계수의 제곱
regr_slope(Y, X) 배정밀도 배정밀도 (에 의해 결정된 최소 제곱 피팅 선형 방정식의 기울기X, Y) 쌍
regr_sxx(Y, X) 배정밀도 배정밀도 합계(X^2) - 합계(X)^2/N (제곱의 합독립변수의)
regr_sxy(Y, X) 배정밀도 배정밀도 합계(X*Y) - 합계(X) * 합계(Y)/N (제품 합계독립시간 종속변수)
regr_syy(Y, X) 배정밀도 배정밀도 합계(Y^2) - 합계(Y)^2/N (제곱의 합종속변수의)
stddev(표현) smallint, int, bigint, 진짜, 배정밀도또는숫자 배정밀도부동 소수점 인수의 경우, 그렇지 않은 경우숫자 이전 별칭stddev_samp
stddev_pop(표현) 작은int, int, 비긴트, 진짜, 배정밀도또는숫자 배정밀도부동 소수점 인수의 경우, 그렇지 않은 경우숫자 입력 값의 모집단 표준 편차
stddev_samp(표현) smallint, int, 비긴트, 실제, 배정밀도또는숫자 배정밀도부동 소수점 인수의 경우, 그렇지 않은 경우숫자 입력 값의 샘플 표준 편차
변량(표현) smallint, int, 비긴트, 실제, 배정밀도또는숫자 배정밀도부동 소수점 인수의 경우, 그렇지 않은 경우숫자 에 대한 과거 별칭var_samp
var_pop(표현) 작은int, int, 비긴트, 진짜, 배정밀도또는숫자 배정밀도부동 소수점 인수의 경우, 그렇지 않은 경우숫자 입력 값의 모집단 분산(모집단 표준 편차의 제곱)
var_samp(표현) smallint, int, bigint, 진짜, 이중 정밀도또는숫자 배정밀도부동 소수점 인수의 경우, 그렇지 않은 경우숫자 입력 값의 샘플 분산(샘플 표준 편차의 제곱)

표 9.54다음을 사용하는 일부 와이즈 토토 함수를 표시합니다.순서 집합 와이즈 토토구문. 이러한 함수는 때때로 다음과 같이 지칭됩니다.역분포함수.

표 9.54. 순서 집합 와이즈 토토 함수

기능 직접 인수 유형 집계된 인수 유형 반환 유형 부분 모드 설명
mode() 그룹 내(ORDER BY정렬_표현) 정렬 가능한 모든 유형 정렬 표현식과 동일 아니요 가장 빈번한 입력 값을 반환합니다(동일한 빈도의 결과가 여러 개인 경우 임의로 첫 번째 값 선택)
백분위수_연속(분수) 그룹 내(ORDER BY정렬_표현) 배정밀도 배정밀도또는간격 정렬 표현식과 동일 아니요 연속 백분위수: 필요한 경우 인접한 입력 항목 사이를 보간하여 순서대로 지정된 분수에 해당하는 값을 반환합니다.
백분위수_연속(분수) 그룹 내(ORDER BY정렬_표현) 배정밀도[] 배정밀도또는간격 정렬 표현식 유형의 배열 아니요 다중 연속 백분위수: 모양과 일치하는 결과 배열을 반환합니다.분수매개변수(null이 아닌 각 요소는 해당 백분위수에 해당하는 값으로 대체됨)
백분위수_디스크(분수) 그룹 내(ORDER BY정렬_표현) 배정밀도 정렬 가능한 모든 유형 정렬 표현식과 동일 아니요 이산 백분위수: 순서에서 위치가 지정된 분수와 같거나 초과하는 첫 번째 입력 값을 반환합니다.
백분위수_디스크(분수) 그룹 내(ORDER BY정렬_표현) 배정밀도[] 정렬 가능한 모든 유형 정렬 표현식 유형의 배열 아니요 다중 이산 백분위수: 모양과 일치하는 결과 배열을 반환합니다.분수매개변수(null이 아닌 각 요소는 해당 백분위수에 해당하는 입력 값으로 대체됨)

다음에 나열된 모든 집계표 9.54정렬된 입력에서 null 값을 무시합니다. 다음을 수행하는 사람들을 위해분수매개변수, 분수 값은 0과 1 사이여야 합니다. 그렇지 않으면 오류가 발생합니다. 그러나 null 분수 값은 단순히 null 결과를 생성합니다.

다음에 나열된 각 집계표 9.55은에 정의된 동일한 이름의 창 함수와 연결되어 있습니다.PostgreSQL : 문서 : 10 : 9.21. 창 롤 토토. 각 경우에 와이즈 토토 결과는 관련 창 함수가 반환한 값입니다.가설적다음으로 구성된 행인수, 해당 행이에서 계산된 정렬된 행 그룹에 추가된 경우sorted_args.

표 9.55. 가설 집합 와이즈 토토 함수

기능 직접 인수 유형 집계된 인수 유형 반환 유형 부분 모드 설명
순위(인수) 그룹 내(ORDER BYsorted_args) VARIADIC "아무거나" VARIADIC "아무거나" 비긴트 아니요 중복 행에 대한 간격이 있는 가상 행의 순위
밀도_순위(인수) 그룹 내(ORDER BYsorted_args) VARIADIC "아무거나" VARIADIC "아무거나" 비긴트 아니요 공백 없이 가상 행의 순위
퍼센트_순위(인수) 그룹 내(ORDER BYsorted_args) VARIADIC "아무거나" VARIADIC "아무거나" 배정밀도 아니요 0부터 1까지의 가상 행의 상대 순위
cume_dist(인수) 그룹 내(ORDER BYsorted_args) VARIADIC "아무거나" VARIADIC "아무거나" 배정밀도 아니요 1/ 범위의 가상 행의 상대 순위N1에

이러한 각 가상 집합 집계에 대해 직접 인수 목록은 다음과 같습니다.인수에 제공된 집계된 인수의 수 및 유형과 일치해야 합니다.sorted_args. 대부분의 기본 제공 와이즈 토토와 달리 이러한 와이즈 토토는 엄격하지 않습니다. 즉, Null이 포함된 입력 행을 삭제하지 않습니다. Null 값은에 지정된 규칙에 따라 정렬됩니다.주문 기준절.

표 9.56. 그룹화 작업

기능 반환 유형 설명
그룹화(인수...) 정수 현재 그룹화 세트에 포함되지 않은 인수를 나타내는 정수 비트 마스크

그룹화 작업은 그룹화 세트와 함께 사용됩니다(참조섹션 7.2.4)을 사용하여 결과 행을 구별합니다. 에 대한 주장그룹화연산은 실제로 평가되지 않지만, 다음에 제공된 표현식과 정확히 일치해야 합니다.그룹별관련 쿼리 수준의 절입니다. 비트는 최하위 비트인 가장 오른쪽 인수로 할당됩니다. 해당 식이 결과 행을 생성하는 그룹화 집합의 그룹화 기준에 포함되어 있으면 각 비트는 0이고, 그렇지 않으면 1입니다. 예를 들면:

= SELECT * FROM items_sold;만들다 | 모델 | 판매
--------+---------+-------
 푸 | GT |  10
 푸 | 투어 |  20
 바 | 도시 |  15
 바 | 스포츠 |  5
(4행)= SELECT 제조사, 모델, GROUPING(제조사,모델), 합계(판매액) FROM items_sold GROUP BY ROLLUP(제조,모델);만들다 | 모델 | 그룹화 | 합계
--------+-------+----------+-----
 푸 | GT |        0 | 10
 푸 | 투어 |        0 | 20
 바 | 도시 |        0 | 15
 바 | 스포츠 |        0 | 5
 푸 |       |        1 | 30
 바 |       |        1 | 20
       |       |        3 | 50
(7행)