집 >데이터 베이스 >MySQL 튜토리얼 >조건부 SQL 쿼리를 사용하여 작업 우선순위를 계산하는 방법은 무엇입니까?
우선순위 분석을 위해 조건부 개수 쿼리 사용
데이터 분석에서 범주형 데이터에서 정보를 추출하려면 조건부 계산이 필요한 경우가 많습니다. "jobId", "jobName" 및 "Priority" 열이 포함된 테이블을 생각해 보세요. 여기서 "Priority"의 범위는 1~5입니다. 각 우선순위 수준에 대한 행 수를 계산하는 쿼리를 만들어야 합니다.
CASE 문을 사용한 쿼리:
다음 쿼리는 CASE 문을 사용하여 각 우선순위 수준에 대한 조건부 계산을 수행합니다.
<code class="language-sql">SELECT jobID, jobName, SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS Priority1, SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS Priority2, SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS Priority3, SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS Priority4, SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS Priority5 FROM Jobs GROUP BY jobID, jobName</code>
각 행에 대해 CASE 문은 "Priority" 값이 지정된 숫자와 일치하는지 확인합니다(예: Priority1은 1임). 이 표현식은 true인 경우 1을 반환하고 false인 경우 0을 반환합니다. 그런 다음 SUM 함수는 각 그룹("jobId" 및 "jobName"으로 결정됨)에 대해 이러한 값을 집계합니다.
작업 ID 및 작업 이름 제거:
결과에 "jobId" 및 "jobName"이 포함될 필요가 없으면 SELECT 및 GROUP BY 절을 수정하여 제거할 수 있습니다.
<code class="language-sql">SELECT SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS Priority1, SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS Priority2, SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS Priority3, SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS Priority4, SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS Priority5 FROM Jobs</code>
이 단순화된 쿼리는 각 우선순위 수준에 대한 조건 수만 반환합니다.
위 내용은 조건부 SQL 쿼리를 사용하여 작업 우선순위를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!