반응형
이 쿼리를 작성하는 방법이 궁금합니다.
이 실제 구문이 가짜라는 것을 알고 있지만 내가 원하는 것을 이해하는 데 도움이 될 것입니다. 훨씬 더 큰 쿼리의 일부이기 때문에이 형식으로 필요합니다.
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
반응형
'MySql' 카테고리의 다른 글
MySQL GROUP_CONCAT 다중 필드 (0) | 2021.01.25 |
---|---|
MySQL PHP에서 SQL 쿼리를 더 읽기 쉽게 만드는 방법은 무엇입니까? (0) | 2021.01.25 |
MySQL PDO로 사용자가 존재하는지 확인하는 PHP (0) | 2021.01.25 |
MySQL 소문자로 MySQL 자동 변환 (0) | 2021.01.25 |
MySQL 테이블의 열 크기를 어떻게 수정할 수 있습니까? (0) | 2021.01.25 |
댓글