집 >데이터 베이스 >MySQL 튜토리얼 >작업 수와 지연 작업 수를 계산하기 위해 여러 SQL SELECT 문을 결합하는 방법은 무엇입니까?
여러 SQL SELECT 문 결합: 실제 예
이 가이드에서는 여러 SQL SELECT
문의 결과를 하나의 포괄적인 테이블로 효율적으로 결합하는 방법을 보여줍니다. 작업 관리 데이터베이스를 예로 사용하겠습니다. 각 작업 기록에는 마감일, 마감일까지의 일수(PALT), 연령(생성 이후 일수)과 같은 세부 정보가 포함됩니다. 목표는 각 개인의 총 작업 수와 기한이 지난 작업 수를 보여주는 보고서를 생성하는 것입니다.
총 작업과 지연 작업을 계산하는 개별 쿼리는 다음과 같습니다.
<code class="language-sql">SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks;</code>
<code class="language-sql">SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks;</code>
이러한 결과를 병합하려면 LEFT JOIN
을 사용합니다. 이렇게 하면 기한이 지난 작업이 없더라도 총 작업 수에 모든 사람이 포함됩니다.
<code class="language-sql">SELECT t1.ks, t1."Total Tasks", COALESCE(t2."Overdue Tasks", 0) AS "Overdue Tasks" FROM (SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;</code>
COALESCE
함수는 사람에게 기한이 지난 작업이 없는 경우(결과적으로 NULL
의 LEFT JOIN
가 됨)를 처리하며 명확성을 위해 NULL
를 0으로 바꿉니다. 마지막 테이블에는 ks
(개인 ID), "총 작업" 및 "기한이 지난 작업"이 표시됩니다. LEFT JOIN
은 기한이 지난 작업이 있는지 여부에 관계없이 모든 개인이 나열되도록 합니다.
위 내용은 작업 수와 지연 작업 수를 계산하기 위해 여러 SQL SELECT 문을 결합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!