Есть таблица
user | show
apple | 2017-10-13 23:00:00
peach | 2017-10-13 22:00:00
apple | 2017-10-12 22:00:00
peach | 2017-10-13 21:00:00
нужно выбрать user у которого после последнего show прошло больше суток. Запрос написал но он не хочет работать:
SELECT * , max( `show` ) AS `last_show`
FROM `tbl`
WHERE `last_show` < NOW( ) - INTERVAL 1 DAY
GROUP BY `user`
ORDER BY `last_show` ASC
LIMIT 1
Как отсортировать значение внутри group by?
Значения агрегатных функций после группировки можно проверить в предложении HAVING
, но не в WHERE
(которое выполняется до группировки):
SELECT * , max( `show` ) AS `last_show`
FROM `tbl`
GROUP BY `user`
HAVING max(`show`) < NOW( ) - INTERVAL 1 DAY
ORDER BY `last_show` ASC
LIMIT 1
Вроде так:
SELECT user, MAX(show) AS last_show
FROM tbl
WHERE user NOT IN ( SELECT DISTINCT user
FROM tbl
WHERE show >= NOW( ) - INTERVAL 1 DAY
)
GROUP BY user
ORDER BY last_show
Ну или аналогичное с NOT EXISTS и коррелированным подзапросом.
Делаю мод для rage mp (gta 5) и сервер на nodejs и javascript построен
Мне нужен запрос с выборкой объектов по условию, наличия текста в колонках
Есть пакет с библиотекой javaxСкачан отсюда: http://hg