[TIL] COUNT + CASE WHEN + DISTINCT

Hanna Kim·2020년 8월 21일
1

SQL

목록 보기
6/11

중복없이 카운트하기 위해서 DISTINCT를 사용할 수 있는데,
CASE문과 함께 쓸 때 위치가 헷갈렸다.

그래서 처음에는 아래와 같이 COUNT할 대상 바로 앞에 넣어줬다.

COUNT(CASE WHEN e.event_name = 'login' 
		THEN DISTINCT e.user_id 
        ELSE NULL 
        END)

틀렸다.

그래서 뭔가 이상해보이지만 CASE문 앞으로 DISTINCT를 옮겼다.

COUNT(DISTINCT CASE WHEN e.event_name = 'login' 
		THEN e.user_id 
        ELSE NULL 
        END)

된다.

이렇게 보니 저 위치가 맞는 것 같다.
SQL강의에서 들었을 것 같은데 기억이 안난다.

앞으로 DISTINCT는 시작하자마자 적어야겠다.

profile
쌓으며 배우는 중

0개의 댓글