[sql] GROUP BY 절을 사용한 데이터의 중간값 계산하기

보통 SQL을 사용해 데이터의 평균이나 합을 계산할 때 많이 사용하는 GROUP BY 절은 데이터의 중간값(Median)을 계산하는 데에는 적합하지 않습니다. 하지만 몇 가지 방법을 활용하여 GROUP BY를 사용한 데이터의 중간값을 계산할 수 있습니다.

방법 1: 서브쿼리 사용

서브쿼리를 이용하여 중간값을 계산할 수 있습니다. 다음은 Sales 테이블에서 amount 열을 기준으로 중간값을 계산하는 쿼리의 예제입니다.

SELECT 
   AVG(amount) as median
FROM 
   (SELECT amount 
          FROM Sales
          ORDER BY amount 
          LIMIT 2 - (SELECT COUNT(*) FROM Sales) % 2  -- 중간값 계산
    ) subquery;

방법 2: 사용자 정의 함수(UDF) 사용

사용자 정의 함수(UDF)를 사용하여 중간값을 계산할 수도 있습니다. 각 데이터베이스 시스템마다 UDF의 구현 방법이 다르므로 해당 시스템의 문서를 참조하여 구현해야 합니다.

위 방법들 중 하나를 선택하여 데이터베이스 시스템에 맞게 적용해보세요. 데이터의 중간값을 계산하는 새로운 방법을 익히는 데 도움이 되리라 생각됩니다.

참고 자료