2023.11.06 12:35
186p 예제1번입니다.
select case when o.ssn is not null
then 'o' else 'x' end as cc_holder,
sum(case when o.ssn is not null then 1 else -1 end) as cnt
from cust_party cust left outer join (
select distinct ssn
from o_acct
where close_dt is null and cc_grade in ('1', '2')
) o.on cust.ssn = o.ssn group by 1;
+-----------+------+
| cc_holder | cnt |
+-----------+------+
| o | 2 |
| x | 0 |
+-----------+------+
mysql사용합니다.
제가 이해를 잘 못한건지 db가 달라서 그런건지 저는 이렇게 나오는게 맞다고 보는데
책에 실행 예제는
+-----------+------+
| cc_holder | cnt |
+-----------+------+
| o | 2 |
| x | 7 |
+-----------+------+
이렇게 나옵니다.
제가 이해하기로는
sum(case when o.ssn is not null then 1 else 0 end) as cnt
0은 더해도 0이니깐 0이 나와야지 7이 나오는게 이해가 안되네요 ㅎㅎ..
(차(영어)가 금지어라 'o'로 적었어요)