@ CarterHandby Добро пожаловать в Stackoverflow! То, как вы разместили свой вопрос, не очень понятно. Прочтите этот пост о том, как задавать вопросы, чтобы облегчить задачу тем, кто помогает вам, и повысить вероятность того, что вы получите ответ.
Что касается вашего вопроса всякий раз, когда вы публикуете вопрос SQL, всегда полезно опубликовать сценарий CREATE TABLE
для создания таблиц, с которыми вы работаете, а также сценарий INSERT INTO
для заполнения таблиц данными. Затем, пожалуйста, перечислите пример выходных данных, которые вы в настоящее время получаете, и как они отличаются от желаемого результата. Это позволяет другим пользователям смоделировать таблицы, с которыми вы работаете, и поиграть в той же ситуации, что и вы, поэтому наши ответы будут более точными.
Вы указали свой запрос, но не получили описания того, что происходит. Как выглядит результирующий набор при его запуске? Если он не запускается, какую ошибку вы получаете? Как выглядит ваш желаемый набор результатов по сравнению с тем, что ваш запрос дает вам сейчас (если что-нибудь)?
Я полагаю, что, глядя на то, что вы перечислили, есть 2 предложения:
у вас предложение WHERE
неуместно. Вы ставите его после оператора GROUP BY
, оно должно быть перед ним.
у вас нет правильного времени. Вы должны указать значения в своем предложении WHERE
следующим образом: BETWEEN '2020-03-26 22:00:00' AND '2020-03-27 6:00:00'
Вот как я думаю, ваш запрос должен выглядеть на основе того, что вы опубликовали, и моих 2 предложений:
SELECT food_id,
consumption_time,
COUNT(consumption_time) AS cnt
FROM consumption
WHERE consumption_time BETWEEN '2020-03-26 22:00:00' AND '2020-03-27 6:00:00'
GROUP BY food_id, consumption_time
;
Если эти предложения не дают того, что вы хотите, следуйте моему совету о том, что перечислить, чтобы уточнить ваш вопрос, и мы сделаем все возможное, чтобы помочь вам.
Надеюсь, это поможет.