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
반응형

'DB' 카테고리의 다른 글

[DB][DBeaver][Oracle] 테이블 컬럼 순서 변경하기  (0) 2024.07.16
[DB][Oracle] sid  (0) 2024.07.14
[DB][SQL] GROUP BY절 안에 CASE  (1) 2024.07.06
[DB][SQL] ORDER BY 절 안에 CASE문  (0) 2024.07.05
[DB] NULL로 나누기  (0) 2024.07.04