DB

[DB][SQL] GROUP BY 절에 CASE문을 Alias로 사용할 수 없는 현상의 대안

오선지♬ 2024. 7. 7. 13:07
728x90
반응형

Subquery를 사용한 대안 방법

또 다른 방법으로는 서브쿼리를 사용하는 것입니다. 서브쿼리를 사용하면 별칭을 활용할 수 있습니다.

SELECT age_group, COUNT(*) AS count
FROM (
    SELECT
        CASE
            WHEN age < 20 THEN '10대'
            WHEN age BETWEEN 20 AND 29 THEN '20대'
            WHEN age BETWEEN 30 AND 39 THEN '30대'
            ELSE '40대 이상'
        END AS age_group
    FROM customers
) AS subquery
GROUP BY age_group;

이 방법을 사용하면 CASE 문을 서브쿼리 내에서 한 번만 작성하고,

메인 쿼리의 GROUP BY 절에서 별칭 age_group을 사용할 수 있습니다.

이는 코드의 가독성을 높이고 유지보수를 용이하게 합니다.

728x90
반응형