Разница в дате с максимальным в где пункт - PullRequest
0 голосов
/ 06 марта 2019

В следующем запросе есть ошибка группового предложения.Я не знаю, как сделать это правильно

SELECT user_id, MAX(updated_date), DATEDIFF(NOW(),MAX(updated_date))
FROM `authentication`
WHERE DATEDIFF(NOW(),MAX(updated_date)) > 20
GROUP by user_id

Ответы [ 3 ]

1 голос
/ 06 марта 2019

Предположительно, вы хотите предложение having:

SELECT user_id, MAX(updated_date), 
       DATEDIFF(NOW(), MAX(updated_date)) as diff
FROM `authentication`
GROUP by user_id
HAVING diff > 20
0 голосов
/ 16 марта 2019

Для повышения производительности дополнительно измените один из ответов с помощью

WHERE updated_date > CURDATE() - INTERVAL 20 DAY

и индекс updated_date.

0 голосов
/ 06 марта 2019

Нет необходимости делать MAX() в предложении WHERE:

SELECT user_id, MAX(updated_date), DATEDIFF(NOW(),MAX(updated_date))
FROM `authentication`
WHERE DATEDIFF(NOW(),updated_date) > 20
GROUP by user_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...