빈 값을 포함하여 특정 날짜 범위 내에서 월 생성
질문:
MySQL에서 , 일부 값이 없는 경우에도 지정된 날짜 범위 내의 모든 달 목록을 생성하려면 어떻게 해야 합니까? 개월?
답변:
이를 달성하려면 다음과 같이 가능한 모든 월을 포함하는 별도의 테이블을 만듭니다.
CREATE TABLE dateTable ( myDate DATE NOT NULL, myYear SMALLINT NOT NULL, myMonth TINYINT UNSIGNED NOT NULL );
이 테이블을 채웁니다. 데이터에서 발견할 수 있는 모든 달을 포함합니다.
그런 다음 LEFT JOIN을 사용하여 dateTable이 있는 원본 테이블인 myTable:
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 DT.myDate = myTable.save_date WHERE DT.myDate BETWEEN '2009-01-01' AND '2009-07-01' GROUP BY DT.myYear, DT.myMonth
이것은 myTable에 값이 없는 달을 포함하여 지정된 범위 내의 모든 달에 대한 평균 값을 검색합니다. LEFT JOIN은 해당 값이 있는지 여부에 관계없이 DT.myDate를 myTable의 모든 행과 일치시켜 빈 값이 포함되도록 보장합니다.
GROUP BY 절을 조정하여 결과를 그룹화하여 출력을 추가로 사용자 정의할 수 있습니다. 재무 분기 또는 요일 등 원하는 기간. 이 접근 방식은 한 달 전체를 포함하는 포괄적인 보고서를 생성하는 편리하고 효율적인 방법을 제공합니다.
위 내용은 빈 값을 포함하여 MySQL의 특정 날짜 범위 내에서 월을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!