와이즈 토토 함수입력 값 세트에서 단일 결과를 계산합니다. 내장된 범용 와이즈 토토 함수는 다음에 나열되어 있습니다.표 9.60통계 와이즈 토토가 있는 동안표 9.61. 내장된 그룹 내 정렬 집합 와이즈 토토 함수는 다음과 같습니다.표 9.62내장된 그룹 내 가상 집합이 있는 동안표 9.63. 와이즈 토토 함수와 밀접하게 관련된 그룹화 작업은 다음과 같습니다.표 9.64. 와이즈 토토 함수에 대한 특수 구문 고려 사항은 다음에서 설명됩니다.섹션 4.2.7. 문의43무지개 토토6463추가 소개 정보를 보려면.
지원하는 와이즈 토토 함수부분 모드병렬 와이즈 토토와 같은 다양한 최적화에 참여할 수 있습니다.
아래의 모든 와이즈 토토는 선택 사항을 허용하지만주문 기준절(설명에 따름)섹션 4.2.7), 이 절은 출력이 순서의 영향을 받는 와이즈 토토에만 추가되었습니다.
표 9.60. 범용 와이즈 토토 함수
|
기능 설명 |
부분 모드 |
|---|---|
|
널이 아닌 입력 값에서 임의의 값을 반환합니다. |
예 |
|
널을 포함한 모든 입력 값을 배열로 수집합니다. |
예 |
|
모든 입력 배열을 하나의 더 높은 차원의 배열로 연결합니다. (입력은 모두 동일한 차원을 가져야 하며 비어 있거나 null일 수 없습니다.) |
예 |
|
null이 아닌 모든 입력 값의 평균(산술 평균)을 계산합니다. |
예 |
|
널이 아닌 모든 입력 값의 비트별 AND를 계산합니다. |
예 |
|
널이 아닌 모든 입력 값의 비트별 OR을 계산합니다. |
예 |
|
널이 아닌 모든 입력 값의 비트별 배타적 OR을 계산합니다. 순서가 지정되지 않은 값 집합에 대한 체크섬으로 유용할 수 있습니다. |
예 |
|
null이 아닌 모든 입력 값이 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
예 |
|
null이 아닌 입력 값이 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
예 |
|
입력 행 수를 계산합니다. |
예 |
|
입력 값이 null이 아닌 입력 행 수를 계산합니다. |
예 |
|
이것은 SQL 표준과 동일합니다. |
예 |
|
Null을 포함한 모든 입력 값을 JSON 배열로 수집합니다. 값은 다음과 같이 JSON으로 변환됩니다. |
아니요 |
|
Null을 건너뛰고 모든 입력 값을 JSON 배열로 수집합니다. 값은 다음과 같이 JSON으로 변환됩니다. |
아니요 |
|
다음과 같은 방식으로 동작합니다
|
아니요 |
|
다음과 같이 행동함
|
아니요 |
|
모든 키/값 쌍을 JSON 개체로 수집합니다. 주요 인수는 텍스트로 강제 변환됩니다. 값 인수는 다음과 같이 변환됩니다. |
아니요 |
|
모든 키/값 쌍을 JSON 개체로 수집합니다. 주요 인수는 텍스트로 강제 변환됩니다. 값 인수는 다음과 같이 변환됩니다. |
아니요 |
|
모든 키/값 쌍을 JSON 개체로 수집합니다. 주요 인수는 텍스트로 강제 변환됩니다. 값 인수는 다음과 같이 변환됩니다. |
아니요 |
|
모든 키/값 쌍을 JSON 개체로 수집합니다. 주요 인수는 텍스트로 강제 변환됩니다. 값 인수는 다음과 같이 변환됩니다. |
아니요 |
|
널이 아닌 입력 값의 최대값을 계산합니다. 모든 숫자, 문자열, 날짜/시간 또는 열거형 유형에 사용할 수 있습니다. |
예 |
|
널이 아닌 입력 값의 최소값을 계산합니다. 모든 숫자, 문자열, 날짜/시간 또는 열거형 유형에 사용할 수 있습니다. |
예 |
|
널이 아닌 입력 값의 합집합을 계산합니다. |
아니요 |
|
널이 아닌 입력 값의 교차점을 계산합니다. |
아니요 |
|
널이 아닌 입력 값을 문자열로 연결합니다. 첫 번째 값 이후의 각 값 앞에는 해당가 옵니다. |
예 |
|
널이 아닌 입력 값의 합계를 계산합니다. |
예 |
|
널이 아닌 XML 입력 값을 연결합니다(참조섹션 9.15.1.8). |
아니요 |
다음을 제외하고는 주의해야 합니다.개수, 행이 선택되지 않은 경우 이러한 함수는 null 값을 반환합니다. 특히,합계행 중 예상대로 0이 아닌 null을 반환하며array_agg입력 행이 없는 경우 빈 배열이 아닌 null을 반환합니다.합체함수는 필요한 경우 null을 0이나 빈 배열로 대체하는 데 사용할 수 있습니다.
와이즈 토토 함수array_agg, json_agg, jsonb_agg, json_agg_strict, jsonb_agg_strict, json_object_agg, jsonb_object_agg, json_object_agg_strict, jsonb_object_agg_strict, json_object_agg_unique, jsonb_object_agg_unique, json_object_agg_unique_strict, jsonb_object_agg_unique_strict, stri와이즈 토토_agg및xmlagg및 유사한 사용자 정의 와이즈 토토 함수는 입력 값의 순서에 따라 의미 있게 다른 결과 값을 생성합니다. 이 순서는 기본적으로 지정되지 않지만 다음을 작성하여 제어할 수 있습니다.주문 기준에 표시된 대로 와이즈 토토 호출 내의 절섹션 4.2.7. 또는 정렬된 하위 쿼리에서 입력 값을 제공하는 것이 일반적으로 작동합니다. 예를 들어:
SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS 탭;
외부 쿼리 수준에 조인과 같은 추가 처리가 포함된 경우 이 접근 방식이 실패할 수 있다는 점에 주의하십시오. 이로 인해 와이즈 토토가 계산되기 전에 하위 쿼리의 출력이 재정렬될 수 있기 때문입니다.
부울 집계bool_and그리고bool_or표준 SQL 와이즈 토토에 해당모든그리고아무거나또는일부. PostgreSQL지원마다하지만 아님모든또는일부, 표준 구문에 내장된 모호성이 있기 때문입니다.
SELECT b1 = ANY((SELECT b2 FROM t2 ...)) FROM t1 ...;
여기모두하위 쿼리가 부울 값이 있는 하나의 행을 반환하는 경우 하위 쿼리를 도입하거나 와이즈 토토 함수로 간주될 수 있습니다. 따라서 이러한 집합체에는 표준 이름을 부여할 수 없습니다.
다른 SQL 데이터베이스 관리 시스템 작업에 익숙한 사용자는 다음의 성능에 실망할 수 있습니다.개수전체 테이블에 적용될 때 집계됩니다. 다음과 같은 쿼리:
어떤 테이블에서 SELECT 개수(*);
테이블 크기에 비례하는 노력이 필요합니다.PostgreSQL테이블 전체를 스캔하거나 테이블의 모든 행을 포함하는 인덱스 전체를 스캔해야 합니다.
표 9.61통계 분석에 일반적으로 사용되는 와이즈 토토 함수를 보여줍니다. (이들은 더 일반적으로 사용되는 집계 목록을 복잡하게 만드는 것을 피하기 위해 분리되었습니다.) 허용되는 것으로 표시된 함수숫자_유형모든 유형에 사용 가능작은int, 정수, 비긴트, 숫자, 진짜및배정밀도. 설명에서 언급된 곳N은 모든 입력 식이 null이 아닌 입력 행의 개수를 의미합니다. 모든 경우에 계산이 의미가 없으면 null이 반환됩니다.N0입니다.
표 9.61. 통계용 와이즈 토토 함수
표 9.62다음을 사용하는 일부 와이즈 토토 함수를 표시합니다.순서 집합 와이즈 토토구문. 이러한 함수는 때때로 다음과 같이 지칭됩니다.“역분포”함수. 집계된 입력은 다음과 같이 소개됩니다.주문 방법, 또한 다음을 수행할 수도 있습니다.직접 인수집계되지 않지만 한 번만 계산됩니다. 이러한 함수는 모두 집계된 입력에서 Null 값을 무시합니다. 다음을 수행하는 사람들을 위해분수매개변수, 분수 값은 0과 1 사이여야 합니다. 그렇지 않으면 오류가 발생합니다. 그러나 null분수값은 단순히 null 결과를 생성합니다.
표 9.62. 순서 집합 와이즈 토토 함수
각각의“가설-집합”다음에 나열된 집계표 9.63은(는)에 정의된 동일한 이름의 창 함수와 연결되어 있습니다.PostgreSQL : 문서 : 17 : 9.22. 창 스포츠 토토. 각각의 경우 집계의 결과는 관련 창 함수가 반환한 값입니다.“가설적”다음으로 구성된 행인수, 해당 행이 다음으로 표시되는 정렬된 행 그룹에 추가된 경우sorted_args. 이러한 각 함수에 대해 다음과 같은 직접 인수 목록이 제공됩니다.인수에 제공된 집계된 인수의 수 및 유형과 일치해야 합니다.sorted_args. 대부분의 기본 제공 와이즈 토토와 달리 이러한 와이즈 토토는 엄격하지 않습니다. 즉, Null이 포함된 입력 행을 삭제하지 않습니다. Null 값은에 지정된 규칙에 따라 정렬됩니다.주문 기준절.
표 9.63. 가설 집합 와이즈 토토 함수
표 9.64. 그룹화 작업
다음에 표시된 그룹화 작업표 9.64그룹화 세트와 함께 사용됩니다(참조섹션 7.2.4)을 사용하여 결과 행을 구별합니다. 에 대한 주장그룹화함수는 실제로 평가되지 않지만, 다음에 제공된 표현식과 정확히 일치해야 합니다.그룹별관련 쿼리 수준의 절입니다. 예를 들면:
=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행)
여기는그룹화값071109_712221다음을 나타냄모델다음에서 마지막 두 행으로 그룹화되지 않았으며 값3둘 다 아님을 나타냄만들다아니요모델마지막 행에서 그룹화되었습니다(따라서 모든 입력 행에 대한 집계입니다).
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.