logo

[SQLite] 집계 함수

 

평균값 계산: avg

  • avg(X) 함수는 그룹 내 모든 NULL이 아닌 X 값의 평균값을 반환합니다. 숫자처럼 보이지 않는 문자열과 BLOB 값은 0으로 해석됩니다. 결과는 항상 부동 소수점 값으로 반환되며, 하나 이상의 NULL이 아닌 입력이 있는 경우에도 모든 입력이 정수일지라도 마찬가지입니다. NULL이 아닌 입력이 없는 경우 결과는 NULL입니다.
  • 예: avg(score)score 열의 NULL이 아닌 값들의 평균을 계산합니다.
 

개수 세기: count

  • count(X) 함수는 그룹 내 X가 NULL이 아닌 횟수를 세어 반환합니다. count(*) 함수는 그룹 내 전체 행의 수를 반환합니다.
  • 예: count(*)는 테이블의 전체 행 수를, count(name)name 열이 NULL이 아닌 행의 수를 세어 반환합니다.
 

값들 연결하기: group_concat, string_agg

  • group_concat(X, Y) 함수는 그룹 내 모든 NULL이 아닌 X 값을 Y를 구분자로 사용하여 연결한 문자열을 반환합니다. Y가 생략되면 쉼표(,)가 구분자로 사용됩니다.
  • string_agg(X, Y)group_concat(X, Y)의 별칭으로, PostgreSQL과 SQL-Server에서 호환되는 함수 이름입니다.
  • 예: group_concat(name, '; ')name 열의 모든 NULL이 아닌 값을 세미콜론과 공백을 구분자로 사용하여 연결합니다.
 

최대값 찾기: max

  • max(X) 집계 함수는 그룹 내 모든 값 중 최대값을 반환합니다. 최대값은 동일한 열에 대한 ORDER BY에서 마지막으로 반환될 값입니다. 그룹 내에 NULL이 아닌 값이 없는 경우에만 NULL을 반환합니다.
  • 예: max(age)age 열의 최대값을 찾습니다.
 

최소값 찾기: min

  • min(X) 집계 함수는 그룹 내 모든 값 중 최소 NULL이 아닌 값을 반환합니다. 최소값은 ORDER BY에서 첫 번째로 나타나는 NULL이 아닌 값입니다. 그룹 내에 NULL이 아닌 값이 없는 경우에만 NULL을 반환합니다.
  • 예: min(age)age 열의 최소값을 찾습니다.
 

합계 계산: sum, total

  • sum(X)total(X) 집계 함수는 그룹 내 모든 NULL이 아닌 X 값의 합을 반환합니다. NULL이 아닌 입력이 없으면 sum()은 NULL을 반환하지만, total()은 0.0을 반환합니다. 일반적으로 합계가 없는 경우 NULL은 도움이 되지 않지만, SQL 표준에서는 이를 요구하고 대부분의 다른 SQL 데이터베이스 엔진에서 sum()을 이런 방식으로 구현하므로, SQLite도 호환성을 위해 같은 방식을 따릅니다. 비표준 total() 함수는 SQL 언어의 이 디자인 문제를 우회하는 편리한 방법으로 제공됩니다.
  • total()의 결과는 항상 부동 소수점 값입니다. 모든 NULL이 아닌 입력이 정수인 경우, sum()의 결과는 정수 값입니다. sum()에 정수나 NULL이 아닌 입력이 있는 경우, sum()은 수학적 합의 근사값인 부동 소수점 값을 반환합니다.
  • sum()은 모든 입력이 정수나 NULL이고 계산 중 어느 시점에서든 정수 오버플로가 발생하면 "정수 오버플로" 예외를 발생시킵니다. 이전 입력에 부동 소수점 값이 있었다면 오버플로 오류는 절대 발생하지 않습니다. total()은 정수 오버플로를 발생시키지 않습니다.
  • 부동 소수점 값을 합산할 때 값의 크기가 크게 다르면 IEEE 754 부동 소수점 값이 근사치이기 때문에 결과 합이 부정확할 수 있습니다. 부동 소수점 숫자의 정확한 합을 얻으려면 decimal 확장의 decimal_sum(X) 집계를 사용하세요.
Previous
기본 함수