반응형
SQL 요청 "...에 구문 오류가 있습니다.오버...주문 기준... 사이..."(이전 버전과 새 버전)
SQL 테이블의 "values" 열에 있는 이전 9개 값으로 행 값을 평균화하는 이동 평균을 만들려고 합니다.
기본적으로, 저는 다음과 같은 것을 참조하십시오.
dateEvent values
2021-07-05 06:00:10 2.0
2021-07-05 14:00:10 3.0
2021-07-05 20:00:10 4.0
2021-07-06 06:00:10 3.0
2021-07-06 14:00:10 1.0
2021-07-06 20:00:10 5.0
2021-07-07 06:00:10 4.0
2021-07-07 14:00:10 2.0
2021-07-07 20:00:10 3.0
2021-07-08 06:00:10 3.0
2021-07-08 14:00:10 3.0
2021-07-08 20:00:10 6.0
2021-07-09 06:00:10 3.0
2021-07-09 14:00:10 3.0
2021-07-09 20:00:10 5.0
2021-07-10 06:00:10 2.0
2021-07-10 14:00:10 3.0
2021-07-10 20:00:10 1.0
그리고 저는 다음을 원합니다.
dateEvent values averageValues averagePerDay
2021-07-05 06:00:10 2.0 2.0
2021-07-05 14:00:10 3.0 2.5 2.50
2021-07-05 20:00:10 4.0 3.0
2021-07-06 06:00:10 3.0 3.0
2021-07-06 14:00:10 8.0 4.0 3.60
2021-07-06 20:00:10 4.0 4.0
2021-07-07 06:00:10 2.0 3.7
2021-07-07 14:00:10 2.0 3.5 3.54
2021-07-07 20:00:10 3.0 3.44
2021-07-08 06:00:10 3.0 3.4
2021-07-08 14:00:10 3.0 3.5 3.57
2021-07-08 20:00:10 6.0 3.8
2021-07-09 06:00:10 3.0 3.7
2021-07-09 14:00:10 3.0 3.7 3.60
2021-07-09 20:00:10 5.0 3.4
2021-07-10 06:00:10 2.0 3.2
2021-07-10 14:00:10 3.0 3.3 3.23
2021-07-10 20:00:10 1.0 3.2
다음을 사용하여 로컬 서버(마지막 버전)에서 문제가 없었습니다.
SELECT *,
(CASE WHEN COUNT(*)
OVER(ORDER BY dateEvent ROWS BETWEEN 10 PRECEDING AND 0 FOLLOWING) > 10
THEN AVG(values)
OVER(ORDER BY ID ROWS BETWEEN 10 PRECEDING AND 0 FOLLOWING)
ELSE values
END)
AS 'averageValues' FROM f16
group by CAST(dateEvent AS DATE)
그러나 이전 서버(업데이트 권한이 없습니다.)에서는 "OVER(ORDER BY..." 주변의 3행 구문 오류를 제공합니다.
뭐가 잘못됐는지 알아요?저는 다른 방법들을 시도해 보았지만 아무 것도 효과가 없었습니다.저는 다른 방법에 대해 개방적이지만, 저는 가깝다고 생각합니다.단지 작은 구문 문제일 뿐입니다.
정말 감사해요.
SQL 테이블의 "값" 열에서 마지막 10개 값을 평균화하려고 합니다.
하위 쿼리를 사용하여 이 작업을 수행할 수 있습니다.
select avg(value)
from (select f16.*
from f16
order by dateEvent desc
limit 10
) f;
당신이 설명하고 있는 문제에는 창 기능이 필요하지 않습니다.
편집:
귀하의 의견에 따라:
select f16.*,
avg(value) over (order by dateevent rows between 10 preceding and current row) as avg_10
from f16;
여기에 db<>fidle이 있습니다.
언급URL : https://stackoverflow.com/questions/68588314/syntax-error-in-sql-request-over-order-by-between-older-versus
반응형
'programing' 카테고리의 다른 글
C# 각 항목에 대한 if 문을 기준으로 목록의 다음 항목으로 이동 (0) | 2023.06.20 |
---|---|
수식을 사용하여 배열 필터링(VBA 없음) (0) | 2023.06.20 |
IntelliJ Idea 2017.3 Kotlin Spring Boot App을 시작할 수 없음 - @Configuration 클래스가 final이 아닐 수 있습니다. (0) | 2023.06.20 |
CTE에서 에 삽입 (0) | 2023.06.20 |
springapplication.properties 파일의 resources 폴더에 파일 지정 (0) | 2023.06.20 |