집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 우선 순위에 따라 조건부 행을 효율적으로 계산하는 방법은 무엇입니까?
SQL은 우선순위에 따라 정렬된 조건부 행을 효율적으로 계산합니다
우선순위(1~5 사이의 정수)를 나타내는 열이 포함된 작업 정보를 저장하는 테이블이 있다고 가정해 보겠습니다. 우선순위별로 작업 수를 표시하는 차트 보고서를 생성하려면 각각 특정 우선순위 값이 있는 행 수를 계산하는 5개의 추가 필드를 만들어야 합니다.
해결책은 SELECT 쿼리에 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>
이 쿼리는 기본적으로 SUM() 함수를 사용하여 각 우선순위 수준에 대한 행 수를 계산합니다. 그러나 CASE 문을 사용하여 특정 우선순위 조건을 충족하지 않는 행을 제외하기도 합니다. 결과는 조건 수를 나타내는 추가 필드가 포함된 테이블입니다.
결과에 작업 수만 포함하고 jobID 및 JobName은 포함하지 않으려면 SELECT 문에서 해당 열을 제거하고 GROUP BY 절을 제거하면 됩니다.
위 내용은 SQL에서 우선 순위에 따라 조건부 행을 효율적으로 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!