본문 바로가기
MySql

MySQL 하나의 SQL 쿼리로 여러 카운트를 얻는 방법은 무엇입니까?

by 베이스 공부 2021. 1. 25.
반응형

이 쿼리를 작성하는 방법이 궁금합니다.

이 실제 구문이 가짜라는 것을 알고 있지만 내가 원하는 것을 이해하는 데 도움이 될 것입니다. 훨씬 더 큰 쿼리의 일부이기 때문에이 형식으로 필요합니다.

SELECT distributor_id, 
COUNT(*) AS TOTAL, 
COUNT(*) WHERE level = 'exec', 
COUNT(*) WHERE level = 'personal'

이 모든 것이 하나의 쿼리로 반환되어야합니다.

또한 한 행에 있어야하므로 다음은 작동하지 않습니다.

'SELECT distributor_id, COUNT(*)
GROUP BY distributor_id'

 

해결 방법

 

집계 함수와 함께 CASE 문을 사용할 수 있습니다. 이것은 기본적으로 일부 RDBMS의 PIVOT 함수와 동일합니다.

SELECT distributor_id,
    count(*) AS total,
    sum(case when level = 'exec' then 1 else 0 end) AS ExecCount,
    sum(case when level = 'personal' then 1 else 0 end) AS PersonalCount
FROM yourtable
GROUP BY distributor_id

 

참조 페이지 https://stackoverflow.com/questions/12789396

 

 

반응형

댓글