Попытка написать запрос mySQL, который выбирает последнее (**) количество раз, когда пользователь включал свет.
** В последнее время все время свет включался в последний день в БД.
Пример таблицы: Имя БД: Название таблицы LLL: Огни
UserID | LightOn | LightOff
-----------------------------------------------------
3 | 2018-01-08 09:00:00 | 2018-01-08 09:03:00
3 | 2018-01-08 10:15:00 | 2018-01-08 10:17:00
3 | 2018-01-07 15:00:00 | 2018-01-07 15:05:00
Итак, из этой таблицы мы можем сказать, что
UserID 3 (Bob) turns the light on:
2 times on January 8th (at 9AM for 3 minutes and 10:15AM for 2 minutes) &
1 times on January 7th (at 3PM for 5 mins)
Я хочу, чтобы мой запрос возвращался 2, потому что в последний день 8 января есть 2 записи.
Я нахожусь в точке, где я могу получить только количество записей:
SELECT COUNT(C.LightOff) AS count FROM LLL.Lights AS C
WHERE C.UserID = 3
ORDER BY C.LightsOff DESC
Я получаю следующий ответ:
count
-------
3
Мне нужно выяснить способ конвертировать отметку времени в ДЕНЬ и получить все записи, соответствующие этому MAX Day.
Желаемый результат:
count
-------
2
Есть идеи?
Предполагая, что у вас есть правильное значение datetime в столбце lightoff
вы можете получить последний день и присоединиться к своему счету
select count(*) from LLL.Lights
inner join (
select max(date(LightOff)) max_date
FROM LLL.Lights
WHERE UserID = 3
) t on t.max_date = date(LightOff)