| 스칼라 |
|---|
| NULL이 아닌 입력값의 개수. COUNT(*)는 모든 행을 셉니다. | SELECT COUNT(*) FROM orders |
| NULL이 아닌 숫자 값의 합계. 빈 집합에서는 NULL을 반환합니다. | SELECT SUM(total) FROM orders |
| NULL이 아닌 숫자 값의 산술 평균. NULL 입력은 무시합니다. | SELECT AVG(total) FROM orders |
| 비교 가능한 모든 타입에서 NULL이 아닌 가장 작은 값. | SELECT MIN(total) FROM orders |
| 비교 가능한 모든 타입에서 NULL이 아닌 가장 큰 값. | SELECT MAX(total) FROM orders |
| 그룹화 |
|---|
| 입력 행을 키 기준으로 분할하며, 집계는 파티션별로 실행됩니다. | SELECT user_id, SUM(total) FROM orders GROUP BY user_id |
| 집계 후 그룹별로 평가되는 조건자. 집계에는 WHERE 대신 씁니다. | SELECT user_id, COUNT(*) FROM orders GROUP BY user_id HAVING COUNT(*) > 5 |
| 한 번의 패스로 그룹별 여러 집계를 계산합니다. | SELECT user_id, COUNT(*), SUM(total), AVG(total) FROM orders GROUP BY user_id |
| 하나의 문에서 여러 그룹화를 계산합니다. 현재 집합 밖의 키는 NULL을 반환합니다. | SELECT user_id, region, SUM(total) FROM orders GROUP BY GROUPING SETS ((user_id), (region), ()) |
| 계층 기반 그루핑 세트의 축약형. 소계와 총계를 추가합니다. | SELECT region, user_id, SUM(total) FROM orders GROUP BY ROLLUP (region, user_id) |
| 나열한 키의 모든 조합을 그루핑 세트로 만드는 축약형. | SELECT region, user_id, SUM(total) FROM orders GROUP BY CUBE (region, user_id) |
| 일반 그룹 키와 그루핑 세트를 하나의 절에서 섞습니다. | SELECT user_id, region, SUM(total) FROM orders GROUP BY user_id, GROUPING SETS ((region), ()) |
| 정렬 순서에서 키별 첫 번째 행을 유지합니다. Postgres 확장입니다. | SELECT DISTINCT ON (user_id) user_id, total FROM orders ORDER BY user_id, created_at DESC |
| Distinct와 고급 |
|---|
| 고유한 NULL 아닌 값의 개수. 먼저 중복을 제거합니다. | SELECT COUNT(DISTINCT user_id) FROM orders |
| 제한된 오차로 distinct 값 개수를 추정합니다. 대규모 입력용입니다. | SELECT APPROX_COUNT_DISTINCT(user_id) FROM orders |
| NULL이 아닌 문자열을 구분자로 연결합니다. | SELECT STRING_AGG(user_id::text, ',') FROM orders |
| NULL이 아닌 문자열을 연결합니다. STRING_AGG의 MySQL 이름입니다. | SELECT GROUP_CONCAT(user_id SEPARATOR ',') FROM orders |
| NULL이 아닌 입력값을 배열로 수집합니다. | SELECT ARRAY_AGG(total) FROM orders |
| 입력 행을 JSON 배열로 수집합니다. JSONB 형식은 파싱된 바이너리로 저장합니다. | SELECT JSONB_AGG(user_id) FROM orders |
| 모든 / 어느 하나의 NULL 아닌 입력값이 참이면 TRUE. | SELECT BOOL_AND(total > 0), BOOL_OR(total > 100) FROM orders |
| BOOL_AND의 표준 별칭. | SELECT EVERY(total > 0) FROM orders |
| 정렬된 입력 위의 보간 / 최근접 순위 백분위수. WITHIN GROUP가 필요합니다. | SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY total) FROM orders |
| 가장 자주 나오는 입력값. Postgres의 순서 집합 집계입니다. | SELECT MODE() WITHIN GROUP (ORDER BY total) FROM orders |
| 정렬 순서를 순서 집합 및 가상 집합 집계에 전달합니다. | SELECT RANK(500) WITHIN GROUP (ORDER BY total) FROM orders |
| 집계를 조건을 통과하는 행으로 제한합니다. | SELECT COUNT(*) FILTER (WHERE total > 100) FROM orders |
| 집계가 값을 연결하거나 수집하기 전에 정렬합니다. | SELECT STRING_AGG(user_id::text, ',' ORDER BY user_id) FROM orders |
| COUNT(*)와 COUNT(1)는 모든 행을 세고, COUNT(col)는 NULL 입력을 건너뜁니다. | SELECT COUNT(*), COUNT(total), COUNT(1) FROM orders |
| NULL이 아닌 숫자 값의 표본 표준편차. STDDEV_POP가 모집단 형식을 주며, 기본 이름의 기본값은 엔진마다 다릅니다. | SELECT STDDEV(total) FROM orders |
| NULL이 아닌 숫자 값의 표본 분산(STDDEV의 제곱). VAR_SAMP와 VAR_POP가 각 형식을 명명합니다. | SELECT VARIANCE(total) FROM orders |