mysql select문이 서버에 올리니까 안돌아갑니다ㅠ 0 5 397

by 컴린이 [SQL Query] [2021.10.23 18:46:54]


1.PNG (85,081Bytes)
12345.PNG (97,859Bytes)

제가 구현하려던게 데이터베이스 상에서 (다음행의 데이터 - 현재 행의 데이터)를 통해 기울기를 구하려던 것이었는데

마농님이 알려주신대로 해서 localhost상에서 테스트했을 때는 값이 잘 나왔습니다.

하지만 제가 학교 서버에 업로드하니까 기울기 값이 계산이 되지 않습니다.

코드는 똑같고 데이터베이스 연동도 확인했고 테이블명이나 그런거 다 수정했는데

왜 학교 서버에서는 기울기 계산을 못할까요.. 똑같은 코드인데 안되는건 뭐가 문제일까요?

*교체 예상일과 현재시간은 무시하셔도 됩니다 염치불구하고 질문합니다ㅠ 첫번째는 localhost, 두번째는 학교 서버입니다.

by 컴린이 [2021.10.23 19:06:47]

혹시 버전 문제일까요? 학교서버는 5.0.77 제 컴퓨터 mysql은 8.0.24입니다.

혹 버전문제라면 5.0.77에서는 저 select문을 어떻게 고쳐야 할까요?


by 컴린이 [2021.10.23 19:47:57]

$sql 쿼리가 실행됐는지 성공 실패여부를 보니 실패뜨네요,,

로컬 호스트에선 되는데 ㅠ


by pajama [2021.10.24 18:19:03]

5 버전에선 lag 함수가 지원되지 않아서 그런가보네요. 


by 마농 [2021.10.25 09:18:40]
SELECT a.id, a.regdate, a.pollu
     , ROUND((a.pollu - b.pollu) / (a.regdate - b.regdate), 5) slope
  FROM (SELECT id, regdate, pollu
             , @id AS id_lag
             , @id := id
          FROM test a
             , (SELECT @id := 0) b
        ) a
  LEFT OUTER JOIN test b
    ON a.id_lag = b.id
;

 


by 마농 [2021.10.26 10:04:42]

테스트서버는 시간 간격이 300 초 정도인데 반해
학교서버에는 시간 간격이 더 짧으며, 심지어 0초인 자료들도 많이 있네요.
시간간격이 0초가 되면 0으로 나누는 에러가 발생될 수 있습니다.
MySQL 에서는 에러는 안나고 Null 이 나오게 되네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입