>  기사  >  데이터 베이스  >  빈 값을 포함하여 MySQL의 특정 날짜 범위 내에서 월을 생성하는 방법은 무엇입니까?

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-31 22:59:29994검색

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

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