빈 값을 포함하여 MySQL의 특정 날짜 범위 내에서 월을 생성하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-31 22:59:29
원래의
1070명이 탐색했습니다.

How to Generate Months within a Specific Date Range in MySQL, Including Empty Values?

빈 값을 포함하여 특정 날짜 범위 내에서 월 생성

질문:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿