필드절에서 조건걸기 0 2 2,313

by 신제트 [MySQL] [2022.12.19 10:45:20]


count를 하려고 합니다

select count(idx) as cnt,

count(if(b=1,1,null) as cnt1 from tbl 

이런식으로 구하고있는데

문제는 a=1 일때 b=1일때 이렇게 구하고싶습니다.(마찬가지 a=1 b=2 ,a=1 b=3 계속구하려고합니다)

where 조건절에서 할수없는 이유는 전체 카운트값을 써야해서 그곳에서 a=1을 쓸수가 없습니다

어떤 방법이있을까요

제가해봤던건

count(case a=1 when b=1 then 1 end) 이런식으로 생각을 해봤는데 값이 맞게 안나옵니다. 

일러주시면 감사하겠습니다.

by 마농 [2022.12.19 10:59:29]
-- 조건이 복합 조건이라면? AND 나 OR 사용하시면 됩니다.
SELECT COUNT(*) cnt_tot
     , COUNT(CASE WHEN a = 1 THEN 1 END) cnt_a1
     , COUNT(CASE WHEN b = 1 THEN 1 END) cnt_b1
     , COUNT(CASE WHEN a = 1 AND b = 1 THEN 1 END) cnt_a1_b1
     , COUNT(CASE WHEN a = 1 OR  b = 1 THEN 1 END) cnt_a1_b1_or
  FROM t
;

 


by 신제트 [2022.12.19 11:10:02]

답변감사드립니다 and 를 쓰면되었군요... 해결하였습니다 감사합니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입