[SQL] 어떻게 그룹에 월별 날짜 필드에서 SQL을 사용하여
SQL어떻게 그룹에 월별 날짜 필드에서 SQL을 사용하여
어떻게 I의 날짜 필드에서만 한 달에 의해 그룹 (그리고 하루 그룹)?
여기 내 날짜 필드는 모습입니다 :
2012-05-01
여기에 내 현재 SQL은 다음과 같습니다
select Closing_Date, Category, COUNT(Status)TotalCount from MyTable
where Closing_Date >= '2012-02-01' and Closing_Date <= '2012-12-31'
and Defect_Status1 is not null
group by Closing_Date, Category
해결법
-
==============================
1.나는 이것을 사용한다 :
나는 이것을 사용한다 :
SELECT Closing_Date = DATEADD(MONTH, DATEDIFF(MONTH, 0, Closing_Date), 0), Category, COUNT(Status) TotalCount FROM MyTable WHERE Closing_Date >= '2012-02-01' AND Closing_Date <= '2012-12-31' AND Defect_Status1 IS NOT NULL GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, Closing_Date), 0), Category;
매월 첫째로이 의지 그룹, 그래서
`DATEADD(MONTH, DATEDIFF(MONTH, 0, '20130128'), 0)`
'20,130,101'을 줄 것이다. 이 날짜로 날짜를 유지 나는 일반적으로이 방법을 선호합니다.
또는 당신이 뭔가를 사용할 수 있습니다 :
SELECT Closing_Year = DATEPART(YEAR, Closing_Date), Closing_Month = DATEPART(MONTH, Closing_Date), Category, COUNT(Status) TotalCount FROM MyTable WHERE Closing_Date >= '2012-02-01' AND Closing_Date <= '2012-12-31' AND Defect_Status1 IS NOT NULL GROUP BY DATEPART(YEAR, Closing_Date), DATEPART(MONTH, Closing_Date), Category;
정말 원하는 출력이 무엇인지 따라 달라집니다. (결산 년도는 예에 필요하지 않지만 날짜 범위가 올해 교차하는 경우가있을 수 있습니다 경계).
-
==============================
2.날짜에서 월을 추출하는 DATEPART 함수를 사용합니다.
날짜에서 월을 추출하는 DATEPART 함수를 사용합니다.
당신은 같은 것을 할 것입니다 그래서 :
SELECT DATEPART(month, Closing_Date) AS Closing_Month, COUNT(Status) AS TotalCount FROM t GROUP BY DATEPART(month, Closing_Date)
-
==============================
3.나는이 작업을 수행하기 위해 FORMAT 기능을 사용 :
나는이 작업을 수행하기 위해 FORMAT 기능을 사용 :
select FORMAT(Closing_Date, 'yyyy_MM') AS Closing_Month , count(*) cc FROM MyTable WHERE Defect_Status1 IS NOT NULL AND Closing_Date >= '2011-12-01' AND Closing_Date < '2016-07-01' GROUP BY FORMAT(Closing_Date, 'yyyy_MM') ORDER BY Closing_Month
-
==============================
4.GROUP BY에서 MONTH (date_column)를 추가하여.
GROUP BY에서 MONTH (date_column)를 추가하여.
SELECT Closing_Date, Category, COUNT(Status)TotalCount FROM MyTable WHERE Closing_Date >= '2012-02-01' AND Closing_Date <= '2012-12-31' AND Defect_Status1 IS NOT NULL GROUP BY MONTH(Closing_Date), Category
-
==============================
5.DATEPART 함수는 MONTH 대신 사용, MySQL은 5.6에 대한 작업을하지 않습니다 ( '2018년 1월 1일')
DATEPART 함수는 MONTH 대신 사용, MySQL은 5.6에 대한 작업을하지 않습니다 ( '2018년 1월 1일')
-
==============================
6.
SELECT to_char(Closing_Date,'MM'), Category, COUNT(Status) TotalCount FROM MyTable WHERE Closing_Date >= '2012-02-01' AND Closing_Date <= '2012-12-31' AND Defect_Status1 IS NOT NULL GROUP BY Category;
-
==============================
7.이 시도:
이 시도:
select min(closing_date), date_part('month',closing_date) || '-' || date_part('year',closing_date) AS month, Category, COUNT(Status)TotalCount FROM MyTable where Closing_Date >= '2012-02-01' AND Closing_Date <= '2012-12-31' AND Defect_Status1 is not null GROUP BY month, Category, ORDER BY 1
a로 합류 당신이 연결된 날짜 형식으로 그룹화하는이 방법 -
-
==============================
8.당신은 년 () 월 () 일 ()와 DATEPART ()를 사용하여이 작업을 수행 할 수 있습니다.
당신은 년 () 월 () 일 ()와 DATEPART ()를 사용하여이 작업을 수행 할 수 있습니다.
당신이 예에서이 될 것이다 :
select Closing_Date, Category, COUNT(Status)TotalCount from MyTable where Closing_Date >= '2012-02-01' and Closing_Date <= '2012-12-31' and Defect_Status1 is not null group by Year(Closing_Date), Month(Closing_Date), Category
-
==============================
9.다음 코드를 사용해보십시오
다음 코드를 사용해보십시오
SELECT Closing_Date = DATEADD(MONTH, DATEDIFF(MONTH, 0, Closing_Date), 0), Category, COUNT(Status) TotalCount FROM MyTable WHERE Closing_Date >= '2012-02-01' AND Closing_Date <= '2012-12-31' AND Defect_Status1 IS NOT NULL GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, Closing_Date), 0), Category;
from https://stackoverflow.com/questions/14565788/how-to-group-by-month-from-date-field-using-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 저장 프로 시저의 열 이름과 유형의 검색? [복제] (0) | 2020.05.19 |
---|---|
[SQL] SQLCMD를 사용하여 PostDeployment.sql 스크립트에 조건부 논리 (0) | 2020.05.19 |
[SQL] 백엔드 버전은 디자인 데이터베이스 다이어그램 또는 테이블에 지원되지 않습니다 (0) | 2020.05.19 |
[SQL] SQL 쿼리, 주어진 좌표에 의해 가까운 곳을 선택 [중복] (0) | 2020.05.19 |
[SQL] 때 왼쪽 외부 조인을 사용 하는가? (0) | 2020.05.19 |