>데이터 베이스 >MySQL 튜토리얼 >사람이 읽을 수 있는 형식으로 SQL 결과를 월별 및 연도별로 그룹화하려면 어떻게 해야 합니까?

사람이 읽을 수 있는 형식으로 SQL 결과를 월별 및 연도별로 그룹화하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-29 02:07:17882검색

How Can I Group SQL Results by Month and Year in a Human-Readable Format?

SQL 결과를 월별 및 연도별로 그룹화

SQL 데이터베이스로 작업할 때 월 또는 연도 등 기간별로 데이터를 그룹화해야 하는 경우가 많습니다. 기본적으로 SQL의 GROUP BY 절은 개별 월 또는 연도를 기준으로 행을 그룹화합니다. 그러나 "월-연도"와 같이 사람이 더 읽기 쉬운 형식으로 결과를 표시해야 하는 상황이 발생할 수 있습니다.

문제: 그룹화된 결과에 월 및 연도 표시

데이터를 월별, 연도별로 그룹화하고 다음과 같이 결과를 표시하는 쿼리가 있다고 가정해 보겠습니다.

SELECT MONTH(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)

이 쿼리는 첫 번째 열에 해당 날짜만 표시하는 결과를 반환합니다. 월(예: "9") 목표는 "9-2011"과 같은 결합된 형식으로 월과 연도를 표시하도록 쿼리를 수정하는 것입니다.

해결책: 날짜 값 캐스팅

이를 달성하려면 다음을 사용할 수 있습니다. 월 및 연도 값을 문자열로 변환하는 CAST 함수:

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, ...

월 및 연도 값을 문자열로 캐스팅하면 다음을 수행할 수 있습니다. 원하는 "월-연도" 형식으로 월과 연도를 결합하는 단일 문자열로 연결합니다.

대체 솔루션: 선행 0

월 값에 선행 0이 필요한 경우 다음 구문을 사용할 수 있습니다.

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 

이 표현식은 모든 월 값 앞에 0이 포함되도록 하여 결과를 보다 일관되고 시각적으로 만듭니다. 매력적입니다.

위 내용은 사람이 읽을 수 있는 형식으로 SQL 결과를 월별 및 연도별로 그룹화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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