>데이터 베이스 >MySQL 튜토리얼 >SQL에서 우선 순위에 따라 조건부 행을 효율적으로 계산하는 방법은 무엇입니까?

SQL에서 우선 순위에 따라 조건부 행을 효율적으로 계산하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-10 07:39:45648검색

How to Efficiently Count Conditional Rows by Priority in 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.