Кто-нибудь может сказать, что не так в этом коде MySQL? - PullRequest
0 голосов
/ 15 мая 2018
SELECT 
    user_id, 
    unix_timestamp, 
    LAG(unix_timestamp,1) OVER (PARTITION BY user_id ORDER BY unix_timestamp) 
    As Previous_time
FROM mydb.query_one
LIMIT 5;

Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '(PARTITION BY user_id ORDER BY unix_timestamp) AS previous_time, RO' в строке 5
0,056 сек

1 Ответ

0 голосов
/ 15 мая 2018

MySQL поддерживает только оконные функции, начиная с версии 8.0. Вместо этого вы можете сделать:

SELECT qo.user_id, qo.unix_timestamp, 
       (SELECT MAX(qo2.unix_timestamp) 
        FROM mydb.query_one qo2
        WHERE qo2.user_id = qo.user_id AND qo2.unix_timestamp < qo.unix_timestamp
       ) as Previous_time
FROM mydb.query_one
LIMIT 5;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...