[MySQL] 전체 레코드와 특정 조건에 부합되는 레코드 수 구하기
MySQL에서 테이블의 레코드를 수를 구할 때 count를 사용하게 된다. 이번에 하려고 했던 것은 전체 레코드 수와 특정 조건에 부합되는 레코드 수를 동시에 구하는 것이었다. 따로 구하면 두번의 query가 실행되야 하지만 이것을 한번에 가능하도록 하면 좋겠다는 생각이 들었다. IF 문을 사용하면 가능할 것 같다는 생각이 들었는데 막상 해보려고 하니 쉬운 게 아니었다.
SELECT COUNT(*) as count1, SUM(IF(status = '주문', 1, 0)) as count2 from c_table where id = '12345'
위의 쿼리는 id가 12345인 레코드수와 그 중에서 status 값이 주문인 것의 개수를 구하는 것이다. 그리고 어려운 쿼리는 아닌데 처음 생각하는 거라 구현하는 데 제법 시간이 걸렸다.