3. 집계 함수
1) 기본 집계 기능
avg() : 0이 아닌 모든 입력 값의 평균
계산하기
: 총 입력 라인 수
count() : 0이 아닌 모든 입력 행 값의 개수
max(): 0이 아닌 모든 입력 값의 최대값
min() : 0이 아닌 모든 입력 값의 최소값
sum() : 0이 아닌 모든 입력값의 합
– GROUP BY 절 없이 WHERE 문 다음에 grab 함수를 사용할 수 없습니다.
따라서 하위 쿼리를 사용하고 하위 쿼리의 SELECT 부분에 집계 함수를 사용하십시오.
– 쿼리문에서 서브쿼리가 먼저 처리되기 때문에 메인쿼리에서는 WHERE문보다 집계 함수가 먼저 처리된다.
예) item_type, item_id 선택
등급에서
WHERE 등급 = (
SELECT 최대(정격) OFF 정격
);
– 데이터가 없는 컬럼에 집계 함수를 사용하면 일부 값이 반환되지만 표시되지 않습니다.
arrun 결과를 출력하지는 않지만 원시 데이터가 있음을 이해합시다.
2) 불리언 연산 집계 함수
데이터 유형이 부울인 경우 부울 연산을 수행하는 집계 함수를 사용할 수 있습니다.
bool_and() : 모든 입력 데이터가 true이면 true를 반환합니다.
bool_or() : 입력 데이터 중 하나라도 true이면 true를 반환합니다.
every() : bool_and 함수와 같은 함수
– 일반적으로 부울 집계 함수를 사용할 때 WHERE 절을 사용하여 원하는 범위의 데이터를 반환합니다.
3) 배열을 포함하는 집계 함수
배열_agg()
– 문자열로 연결된 null 값을 포함한 입력값
– 고차원 배열에 연결된 입력 배열
4) JSON 집계 함수
json_agg() : null을 포함하는 json 배열로 집계된 값
jsonb_agg() : null을 포함하는 jsonb 배열로 집계된 값
– 일반 json 출력 시 컬럼 데이터는 중괄호 안에 저장된다.
즉, 데이터는 JSON 형식입니다.
– json_agg 함수를 사용하여 json 유형 데이터를 집계하면 데이터가 배열로 반환됩니다.
– jsonb_agg 함수를 사용하여 json 유형의 데이터를 집계하면 데이터가 한 행에 배열로 출력됩니다.
즉, jsonb_agg 함수를 이용하여 json 형태의 데이터를 집계하면 jsonb 형태의 배열로 반환된다.
-JSON 데이터에 json_agg 집계 함수를 사용하면 JSON 데이터를 배열로 넣어 그대로 출력한다.
– json 데이터에 집계 함수 jsonb_agg를 사용하면 텍스트를 바이너리 형태로 분리하여 배열로 넣어 출력한다.
-jsonb 데이터는 처음부터 바이너리 형태로 분리
json_agg 함수 또는 jsonb_agg 함수를 사용하기 때문에 출력 결과는 동일합니다.
json_object_agg(key, value) : 이름-값 쌍을 json 객체로 집계
값은 null을 나타내고 이름은 null을 나타내지 않습니다.
jsonb_object_agg(key, value): 이름-값 쌍을 json 객체로 그룹화합니다.
값은 null을 나타내고 이름은 null을 나타내지 않습니다.
-json_object_agg 키 값 형식의 집계 함수
일반적으로 표준 숫자를 키로 사용하고 데이터를 값으로 레이블 지정
– json_object_agg와 jsonb_object_agg의 차이점은 jsonb를 바이너리 형태로 파싱한 후 다시 출력한다는 점이다.
두 코드를 비교하면 jsonb_object_agg 열의 각 행에 일부 공백이 없습니다.
출력물을 보면 공백 외에는 달라진 것이 없다는 느낌이 들지만 차이점은 공백이 있다는 것입니다.
서버에 접속하여 개발 시 오류가 발생하거나 원하는 결과가 다를 수 있습니다.