반응형
쿼리를 작성하다보면, 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개가 된다.
반응형
'개발 > database' 카테고리의 다른 글
mariadb 이메일 유효성 체크 함수 (0) | 2023.08.28 |
---|---|
mariadb 트리거 생성 예제 - 입력,수정,삭제 (0) | 2023.08.04 |
WITH 절 사용법 (0) | 2023.03.28 |
MySQL/MariaDB 프로파일링 (0) | 2022.09.18 |
MySQL/MariaDB 실행계획 수행 (0) | 2022.09.18 |
댓글