플래그(Yes/No) 형태의 지표를 만들다 보면,
특정 조건이 한 번이라도 발생했는지를 판단해야 하는 경우가 있는데요.
보통은 아래와 같은 형태로 처리합니다.
MAX(CASE WHEN event_type = 'purchase' THEN 1 ELSE 0 END) AS has_purchase
동작은 정확하지만, 여러 플래그를 동시에 만들어야 할 때
쿼리 가독성이 떨어진다는 단점이 있습니다.
이때 대안으로 사용할 수 있는 함수가 BOOL_OR() 입니다.
BOOL_OR(event_type = 'purchase') AS has_purchase
조건식이 단 한 번이라도 TRUE를 만족하면 TRUE를 반환합니다.
조건을 충족하는 값이 전혀 없을 경우에만 FALSE를 반환합니다.
✔️ BOOL_OR()를 사용하면 복잡한 CASE 절을 줄이면서도 보다 명확하고 읽기 쉬운 형태로 플래그를 생성할 수 있습니다.