특정 날짜 범위에서 Null 값이 포함된 모든 달 추출
일정 범위를 기준으로 월 평균을 계산할 때 값이 0이거나 누락된 월을 포함하는 것이 중요합니다. 이렇게 하면 지정된 기간 내의 모든 월이 고려됩니다.
MySQL에서 이를 달성하기 위한 한 가지 접근 방식은 지정된 범위 내에서 가능한 모든 월을 포함하는 별도의 테이블을 생성하는 것입니다. "날짜 테이블"이라고 하는 이 테이블은 적절한 날짜, 연도 및 기타 관련 속성으로 채워질 수 있습니다.
날짜 테이블을 사용하면 원본 데이터 테이블과 LEFT JOIN을 수행할 수 있습니다. . LEFT JOIN 작업은 원본 테이블에 일치하는 행이 없더라도 날짜 테이블의 모든 행이 결과에 포함되도록 합니다. 결과적으로 출력에는 데이터가 있는지 여부에 관계없이 지정된 범위 내의 모든 월이 표시됩니다.
다음은 이 접근 방식을 보여주는 예제 쿼리입니다.
<code class="sql">SELECT `DT`.`myYear`, `DT`.`myMonth`, AVG(`myTable`.`value1`) AS `avg_value_1`, AVG(`myTable`.`value2`) AS `avg_value_2` FROM `dateTable` AS `DT` LEFT JOIN `myTable` ON `dateTable`.`myDate` = `myTable`.`save_date` WHERE `dateTable`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01' GROUP BY `DT`.`myYear`, `DT`.`myMonth`</code>
이 쿼리는 다음을 반환합니다. 원본 테이블에 데이터가 없는 달을 포함하여 2009년 1월부터 7월까지의 모든 달입니다. AVG() 함수는 데이터가 있는 달의 값 집계를 처리하는 반면, LEFT JOIN 연산은 null 값이 있는 달에 평균 0이 할당되도록 보장합니다.
날짜 테이블을 활용하고 LEFT JOIN을 수행하면 데이터 유무에 관계없이 특정 기간 내의 모든 월을 효과적으로 추출할 수 있어 월 평균에 대한 종합적인 분석이 가능합니다.
위 내용은 Null 값이 있는 경우에도 월별 평균에 모든 월을 포함하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!