집 >데이터 베이스 >MySQL 튜토리얼 >단일 SQL 쿼리에서 여러 카운트를 효율적으로 얻으려면 어떻게 해야 합니까?
쿼리 설계 최적화: 단일 SQL 문을 사용하여 여러 카운트 달성
데이터 분석에서는 표의 다양한 조건에 대한 여러 개수를 얻어야 하는 경우가 많습니다. 간단한 쿼리는 단일 개수를 반환할 수 있지만 단일 쿼리에서 여러 개수를 가져오려면 좀 더 미묘한 접근 방식이 필요합니다.
쿼리 구조:
이를 위해 집계 함수와 결합된 CASE 문을 사용할 수 있습니다. 이 방법은 일부 데이터베이스 시스템에서 PIVOT 기능을 시뮬레이션합니다. 생성된 쿼리는 다음 형식을 취합니다.
<code class="language-sql">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</code>
지침:
COUNT(*)
함수는 각 distributor_id
에 대한 총 행 수를 계산합니다. level
열을 기준으로 행 수를 늘립니다. level
이 'exec'이면 ExecCount
이 증가하고, level
가 '개인용'이면 PersonalCount
이 증가합니다. GROUP BY
절은 결과를 distributor_id
별로 그룹화하여 각 배포자에 대한 고유한 개수를 보장합니다. 이 방법의 장점:
위 내용은 단일 SQL 쿼리에서 여러 카운트를 효율적으로 얻으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!