토토 함수입력 값 세트에서 단일 결과를 계산합니다. 내장 된 일반 목적 토토 기능은에 나열되어 있습니다.표 9.60통계 응집체가있는 동안표 9.61. 내장 그룹 내 순서 세트 토토 함수는에 나열되어 있습니다.표 9.62내장 된 그룹 내 가상 세트가있는 동안표 9.63. 토토 함수와 밀접한 관련이있는 그룹화 작업은에 나와 있습니다.표 9.64. 토토 함수에 대한 특별 구문 고려 사항은에 설명되어 있습니다.섹션 4.2.7. 찾다43토토6463추가 입문 정보는
지원하는 토토 함수부분 모드병렬 토토와 같은 다양한 최적화에 참여할 수 있습니다.
아래의 모든 토토는 선택 사항을 수락합니다주문 by
조항 (요약 된섹션 4.2.7),이 절은 주문에 의해 출력에 영향을받는 토토에만 추가되었습니다.
표 9.60. 일반 목적 집계 기능
기능 설명 |
부분 모드 |
---|---|
널이 아닌 입력 값에서 임의의 값을 반환합니다. |
예 |
널을 포함한 모든 입력 값을 배열로 수집합니다. |
예 |
모든 입력 배열을 하나의 높은 차원의 배열로 연결합니다. (입력은 모두 같은 차원을 가져야하며 비어 있거나 널가 될 수 없습니다.) |
예 |
모든 비 널 입력 값의 평균 (산술 평균)을 계산합니다. |
예 |
널 비 널 입력 값을 비트와 모든 비를 계산합니다. |
예 |
널 비 널 입력 값을 비트 또는 모든 비 널 입력 값을 계산합니다. |
예 |
비트 와이드 독점 또는 모든 비 널 입력 값을 계산합니다. 정렬되지 않은 값 세트에 대한 체크섬으로 유용 할 수 있습니다. |
예 |
모든 비 널 입력 값이 true 인 경우 true를 반환합니다. |
예 |
널 비 널 입력 값이 true 인 경우 true를 반환합니다. 그렇지 않으면 거짓. |
예 |
입력 행 수를 계산합니다. |
예 |
입력 값이 null이 아닌 입력 행의 수를 계산합니다. |
예 |
이것은 SQL 표준의 것과 같습니다. |
예 |
NULLS를 포함한 모든 입력 값을 JSON 어레이로 수집합니다. 값은에 따라 JSON으로 변환됩니다 |
아니오 |
널을 건너 뛰는 모든 입력 값을 JSON 어레이로 수집합니다. 값은에 따라 JSON으로 변환됩니다 |
아니오 |
와 같은 방식으로 동작
|
아니오 |
|
아니오 |
모든 키/값 쌍을 JSON 객체에 수집합니다. 주요 인수는 텍스트로 강요됩니다. 값 인수는에 따라 변환됩니다. |
아니오 |
모든 키/값 쌍을 JSON 객체에 수집합니다. 주요 인수는 텍스트로 강요됩니다. 값 인수는에 따라 변환됩니다. |
아니오 |
모든 키/값 쌍을 JSON 객체에 수집합니다. 주요 인수는 텍스트로 강요됩니다. 값 인수는에 따라 변환됩니다. |
아니오 |
모든 키/값 쌍을 JSON 객체에 수집합니다. 주요 인수는 텍스트로 강요됩니다. 값 인수는에 따라 변환됩니다. |
아니오 |
널 비 널 입력 값의 최대 값을 계산합니다. 모든 숫자, 문자열, 날짜/시간 또는 열거 유형 및에 사용할 수 있습니다. |
예 |
널 비 널 입력 값의 최소값을 계산합니다. 모든 숫자, 문자열, 날짜/시간 또는 열거 유형 및에 사용할 수 있습니다. |
예 |
널 비 널 입력 값의 결합을 계산합니다. |
아니오 |
널 비 널 입력 값의 교차점을 계산합니다. |
아니오 |
널이 아닌 입력 값을 문자열로 연결합니다. 첫 번째 이후의 각 값은 해당에 앞서 |
예 |
널이 아닌 입력 값의 합을 계산합니다. |
예 |
NULL XML 입력 값을 연결합니다 (참조섹션 9.15.1.8). |
아니오 |
count
,이 함수는 행을 선택할 때 널 값을 반환합니다. 특히,Sum
노의 노선은 예상대로 0이 아닌 널을 반환하고array_agg
입력 행이 없을 때 빈 배열 대신 NULL을 반환합니다. 그만큼Coalesce
필요할 때 널을 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
및 유사한 사용자 정의 토토 함수는 입력 값의 순서에 따라 의미있는 다른 결과 값을 생성합니다. 이 순서는 기본적으로 지정되지 않지만 AN을 작성하여 제어 할 수 있습니다.주문 by
집계 호출 내의 조항, 다음에 표시된대로섹션 4.2.7. 또는 정렬 된 서브 쿼리에서 입력 값을 공급하는 것이 일반적으로 작동합니다. 예를 들어:
XMLAGG (X)를 선택하여 (Y DESC로 테스트 주문에서 X를 선택) 탭;
외부 쿼리 레벨에 조인과 같은 추가 처리가 포함되어 있으면이 접근법이 실패 할 수 있다고 조심하십시오. 이로 인해 집계가 계산되기 전에 서브 쿼리의 출력을 다시 주문할 수 있기 때문입니다..
부울 집계bool_and
andbool_or
표준 SQL 토토에 해당Every
andany
또는일부
. PostgreSQL지원Every
, 그러나any
또는일부
, 표준 구문에 내장 된 모호성이 있기 때문에 :
t1에서 B1 = any ((t2에서 b2를 선택하십시오))를 선택하십시오 ...;
여기Any
하위 쿼리가 부울 값으로 한 행을 반환하는 경우 하위 쿼리를 도입하거나 토토 함수로 간주 될 수 있습니다. 따라서이 집계에는 표준 이름이 주어질 수 없습니다.
다른 SQL 데이터베이스 관리 시스템과 협력하는 데 익숙한 사용자는의 성능에 실망 할 수 있습니다count
전체 테이블에 적용될 때 토토. 쿼리 :
약간의 count (*)에서 선택할 수 있습니다;
테이블 크기에 비례하는 노력이 필요합니다 :PostgreSQL표에 모든 행을 포함하는 전체 테이블 또는 인덱스 전체를 스캔해야합니다.
표 9.61통계 분석에 일반적으로 사용되는 토토 함수를 보여줍니다. (이들은 더 많은 공동체가 사용하는 집계 목록을 어지럽히는 것을 피하기 위해 분리되어 있습니다.) 함수는 수락하는 것으로 표시됩니다numeric_type
모든 유형에 사용할 수 있습니다smallint
, Integer
, bigint
, 숫자
, Real
및이중 정밀도
. 설명에 언급 된 위치n
모든 경우에, 계산이 의미가 없다면 NULL이 반환됩니다. 예를 들어n
is ZERO.
표 9.61. 통계에 대한 토토 함수
표 9.62를 사용하는 일부 토토 함수를 보여줍니다.주문 세트 집계구문. 이러한 기능은 때때로라고도합니다.“역 분포”함수. 토토 된 입력은에 의해 소개됩니다.주문 by
직접 인수그것은 집계되지 않았지만 한 번만 계산됩니다. 이러한 모든 기능은 집계 된 입력의 널 값을 무시합니다. 를 취하는 사람들을 위해fraction
매개 변수, 분수 값은 0과 1 사이 여야합니다. 그렇지 않으면 오류가 발생합니다. 그러나 널fraction
값은 단순히 널 결과를 생성합니다.
표 9.62. 주문 세트 토토 함수
각각“가상 세트”토토에 나열된표 9.63에 정의 된 동일한 이름의 창 함수와 관련이 있습니다PostgreSQL : 문서 : 17 : 9.22. 창 스포츠 토토. 각각의 경우, 집계 결과는 관련 창 함수가에 반환 한 값입니다.“가상”행으로 구성된 행args
, 그러한 행이 |Sorted_args
. 이러한 각 기능에 대해에 나와있는 직접 인수 목록args
Sorted_args
. 대부분의 내장 골재와 달리, 이러한 토토는 엄격하지 않으며, 널이 포함 된 입력 행을 삭제하지 않습니다. null 값은에 지정된 규칙에 따라 정렬됩니다.주문 by
절.
표 9.63. 가상 세트 토토 함수
표 9.64. 그룹화 작업
그룹화 작업에 표시된 그룹화표 9.64그룹화 세트와 함께 사용됩니다 (참조섹션 7.2.4) 결과 행을 구별하려면. 에 대한 논쟁그룹화
함수는 실제로 평가되지 않지만에 제공된 표현식을 정확하게 일치시켜야합니다.그룹 by
관련 쿼리 레벨의 조항. 예를 들어:
=
선택 *에서 items_sold;
만들기 | 모델 | 매상 -------+-------+------- foo | GT | 10 foo | 투어 | 20 바 | 도시 | 15 바 | 스포츠 | 5 (4 줄)=
Make, Model, Grouping (Make, Model), Sum (Sales)을 선택하여 Items_sold Group rollup (Make, Model);를 선택하십시오.
만들기 | 모델 | 그룹화 | 합집합 -------+-------+----------+----- foo | GT | 0 | 10 foo | 투어 | 0 | 20 바 | 도시 | 0 | 15 바 | 스포츠 | 0 | 5 foo | | 1 | 30 바 | | 1 | 20 | | 3 | 50 (7 줄)
여기,그룹화
value0
처음 4 개의 행에서는 두 줄이 그룹화 열에 대해 정상적으로 그룹화되었음을 보여줍니다. 값1
모델
| 다음은 다음 두 행으로 그룹화되지 않았으며 값3
만들기
NOR모델
마지막 행에 그룹화되었습니다 (따라서 모든 입력 행의 집계입니다).
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면