반응형
MySQL LAG/LEAD 문제
현재 호스트에서 GoDaddy로 코드를 이동하려고 하는데 LED/LAG에 문제가 있습니다.
내 코드에는 다음 SQL 문이 있습니다.
SELECT
id,
LAG(Clients.id,1) OVER w AS 'lag',
LEAD(Clients.id,1) OVER w AS 'lead'
FROM Clients
WHERE custno IS NOT NULL
WINDOW w AS (ORDER BY Clients.id)
현재 호스트에서는 완벽하게 작동합니다.이들은 10.3.29-MariaDB를 실행하고 있습니다.
GoDaddy는 5.6.49-cll-lve MySQL을 실행하고 있습니다.동일한 쿼리를 실행하려고 하면 다음과 같은 오류가 발생합니다.
20 errors were found during analysis.
An alias was previously found. (near "w" at position 34)
Unexpected token. (near "w" at position 34)
Unrecognized keyword. (near "AS" at position 36)
Unexpected token. (near "'lag'" at position 39)
Unexpected token. (near "," at position 44)
Unexpected token. (near "LEAD" at position 46)
Unexpected token. (near "(" at position 50)
Unexpected token. (near "Clients" at position 51)
Unexpected token. (near "." at position 58)
Unexpected token. (near "id" at position 59)
Unexpected token. (near "," at position 61)
Unexpected token. (near "1" at position 62)
Unexpected token. (near ")" at position 63)
Unexpected token. (near "OVER" at position 65)
Unexpected token. (near "w" at position 70)
Unrecognized keyword. (near "AS" at position 72)
Unexpected token. (near "'lead'" at position 75)
Unrecognized keyword. (near "AS" at position 129)
Unexpected token. (near "(" at position 132)
Unexpected token. (near ")" at position 152)
좋은 의견이라도 있나?
창 기능을 지원하지 않는 MySql 버전에서 이 코드를 실행하고 있습니다(MySql 8.0+ 필요).
대신 상관된 하위 쿼리를 사용할 수 있습니다.
SELECT
c.id,
(SELECT MAX(cc.id) FROM Clients cc WHERE cc.id < c.id) AS `lag`,
(SELECT MIN(cc.id) FROM Clients cc WHERE cc.id > c.id) AS `lead`
FROM Clients c
WHERE c.custno IS NOT NULL
언급URL : https://stackoverflow.com/questions/67791318/mysql-lag-lead-issue
반응형
'programing' 카테고리의 다른 글
"Syntax Error:위치 0"의 JSON에 예기치 않은 토큰이 있습니다. (0) | 2022.09.26 |
---|---|
React.js: 내부 설정HTML vs 위험 SetInnerHTML (0) | 2022.09.26 |
Java에서 Long을 현재로 변환하면 1970이 반환됩니다. (0) | 2022.09.26 |
Javascript 스왑 어레이 요소 (0) | 2022.09.26 |
PHP에서 Excel 파일 읽기 (0) | 2022.09.26 |