(인라인뷰)서브쿼리를 써도 로직를 명확하게 쿼리를 만들면 좋은 방법이 될 수 있을 것 같습니다.
근데 지금 위 쿼리는 보너스 항목에 돈이 없어도 조회가 됩니다.
조금 수정한다면..
WITH T AS ( SELECT '총무' AS 부서, 10 AS 보너스, '홍길동' AS 이름 FROM DUAL UNION ALL SELECT '총무' AS 부서, 20 AS 보너스, '홍길동' AS 이름 FROM DUAL UNION ALL SELECT '총무' AS 부서, 30 AS 보너스, '홍길동' AS 이름 FROM DUAL UNION ALL SELECT '총무' AS 부서, 10 AS 보너스, '김철수' AS 이름 FROM DUAL UNION ALL SELECT '총무' AS 부서, 20 AS 보너스, '김철수' AS 이름 FROM DUAL UNION ALL SELECT '인사' AS 부서, 10 AS 보너스, '안철수' AS 이름 FROM DUAL UNION ALL SELECT '총무' AS 부서, 0 AS 보너스, '박철수' AS 이름 FROM DUAL UNION ALL SELECT '총무' AS 부서, NULL AS 보너스, '백철수' AS 이름 FROM DUAL ) SELECT COUNT(*) FROM ( SELECT 부서, 이름 FROM T WHERE 부서 = '총무' GROUP BY 부서, 이름 HAVING SUM(보너스) > 0 )