programing

Oracle SQL - 주별 데이터 합계 및 그룹화

iphone6s 2023. 6. 21. 22:25
반응형

Oracle SQL - 주별 데이터 합계 및 그룹화

날짜와 관련된 기록이 있습니다.

DATE         AMOUNT
16.03.2013   3
16.03.2013   4
16.03.2013   1
16.03.2013   3
17.03.2013   4
17.03.2014   3

저는 하루에 어떻게 요약하는지 알고 있는데, 어떻게 주별로 요약할 수 있을까요?`

함수를 사용하여 날짜를 주의 첫 번째 요일로 자를 수 있습니다.주를 정의하는 몇 가지 방법이 있습니다.예를 들어, 만약 당신이 주의 첫 번째 날을 월요일로 취급하고 싶다면, 당신은 할 수 있습니다.IW다음과 같은 형식:

select trunc(date, 'IW') week, sum(amount)
from YourTable
group by trunc(date, 'IW');

또한TO_CHAR"@Vignesh Kumer"의 답변으로 기능합니다.

요점은 같은 주의 날짜를 하나의 값으로 잘라야 한다는 것입니다.그런 다음 값을 기준으로 그룹화합니다.바로 그겁니다.

사용해 보세요.

SELECT to_char(DATE - 7/24,'IYYY'), to_char(DATE - 7/24,'IW'),SUM(AMOUNT)
FROM YourTable
GROUP BY to_char(DATE - 7/24,'IYYY'), to_char(DATE - 7/24,'IW')

피들 데모


출력은 다음과 같습니다.

+-----+-------+--------+
|YEAR | WEEK  | AMOUNT |
+-----+-------+--------+
|2013 | 11    | 18     |
|2013 | 13    | 3      |
+-----+-------+--------+

이것도 도움이 될 것 같습니다.

 /* Weekly sum of values */
 SELECT SUM( Amount ) as Sum_Amt, 
 DATEPART (wk, Date) as WeekNum
 FROM databse_name.table_name
 GROUP BY DATEPART (wk, Date)
 ORDER BY WeekNum

 /* Monthly sum of values */
 SELECT SUM( Amount ) as Sum_Amt, 
 DATEPART (mm, Date) as MonNum
 FROM databse_name.table_name
 GROUP BY DATEPART (mm, Date)
 ORDER BY MonNum

Oracle SQL을 연도 및 주 번호별로 그룹화하려면 다음을 사용합니다.

 GROUP BY to_char(createddate, 'IYYY IW')

출력 예:

2022 46 2023 01

언급URL : https://stackoverflow.com/questions/25259633/oracle-sql-sum-and-group-data-by-week

반응형