반응형
동일한 쿼리, 다른 결과
매일 크론을 실행하고 레코드를 테이블에 저장합니다.사용자의 일일 진행률을 보기 위해 쿼리를 작성했지만 문제가 발생했습니다.
별도의 데이터베이스가 있는 로컬 환경과 프로덕션 환경이 있습니다.
SELECT *, LAG(value) OVER(PARTITION BY node_id ORDER BY created_at) old_value
FROM ledger WHERE ledger_type_id = 1
이것이 실패하고 있는 쿼리의 일부입니다.제 생각에 db 드라이버가 그것을 하고 있는 것 같습니다.쿼리가 SQL 클라이언트에서 prod 데이터베이스에서 작동하고 있었지만 MySQL 8을 실행하고 있으며 proddb는 10.3.16-MariaDB입니다.로컬 데이터베이스 MySQL 5.7에서 동일한 쿼리를 시도했지만 다음 오류가 발생했습니다.
[2019-08-06 16:12:47] [42000][1064] You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near '(PARTITION BY node_id ORDER BY created_at) AS old_value
그 후에 저는 두 가지 테스트를 더 했습니다.
- phpmyadmin을 통해 prod 서버 자체에서 쿼리를 실행하고 몇 분 동안 서버가 완전히 종료되었습니다.
- 제품 환경에서 내 코드에서 쿼리 실행(라벨 5.8):
DB::select(DB::raw('
SELECT *, LAG(value) OVER(
PARTITION BY node_id ORDER BY created_at
) old_value
FROM ledger WHERE ledger_type_id = 1
'))
그리고 이것을 내 라벨 로그에 넣었습니다.
production.ERROR: SQLSTATE[42000]: Syntax error or access violation:
1140 Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is
illegal if there is no GROUP BY clause
제가 잘못된 행동을 하고 있나요?
언급URL : https://stackoverflow.com/questions/57377038/same-query-different-results
반응형
'programing' 카테고리의 다른 글
"#define X X"는 무엇을 의미합니까? (0) | 2023.08.18 |
---|---|
엑셀이 이해할 수 있도록 날짜 시간을 포맷하는 방법은? (0) | 2023.08.18 |
DOM에 데이터 속성 추가 (0) | 2023.08.18 |
jQuery를 사용하여 앵커를 활성화하거나 비활성화하는 방법은 무엇입니까? (0) | 2023.08.18 |
jquery 양식이 예상대로 작동하지 않습니다.ajaxForm이 함수가 아닙니다. (0) | 2023.08.18 |