개발/database

mariadb group by 중 특정 컬럼 값이 다를 경우 count 다르게 조회

가시죠 2023. 8. 9. 10:06
반응형

 

쿼리를 작성하다보면, GROUP BY 하여 값을 가져오는데, 특정 컬럼의 값이 다른경우 COUNT를 다르게 조회해야할 경우가 존재한다.

 

작성해야 하는 쿼리 조건 : 특정 컬럼 값이 다를 경우에만 COUNT를 다른 값으로 계산하고, 그렇지 않은 경우에는 리턴되는 ROW가 1개여야 한다

아래 쿼리를 예시로 들어보자. 테이블 이름이 your_table이며, 특정 컬럼이 specific_column이라고 가정한다.

SELECT
    specific_column,
    CASE
        WHEN COUNT(DISTINCT column1, column2, ...) > 1 THEN COUNT(DISTINCT column1, column2, ...)
        ELSE 1
    END AS count_result
FROM your_table
GROUP BY specific_column;

이 쿼리는 specific_column 값을 기준으로 그룹화하고, COUNT(DISTINCT column1, column2, ...)를 사용하여 다른 모든 컬럼의 값이 같은지 확인한다.

만약 다른 값이 하나라도 있으면 COUNT를 해당 값으로 계산하고, 그렇지 않은 경우에는 1로 계산한다.

이렇게 하면 특정 컬럼 값이 다를 경우에만 COUNT를 다른 값으로 계산하고, 그렇지 않은 경우에는 리턴되는 ROW가 1개가 된다.

반응형