Каков наилучший способ подсчета времени? - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь получить стол с подсчетом еды, потребленной за ночь (с 10 вечера до 6 утра). Какой лучший способ go об этом?

SELECT food_id, consumption_time, COUNT(consumption_time) AS cnt
FROM consumption
GROUP BY food_id, consumption_time
WHERE consumption_time BETWEEN 22:00:00 AND 6:00:00;

1 Ответ

0 голосов
/ 28 марта 2020

@ CarterHandby Добро пожаловать в Stackoverflow! То, как вы разместили свой вопрос, не очень понятно. Прочтите этот пост о том, как задавать вопросы, чтобы облегчить задачу тем, кто помогает вам, и повысить вероятность того, что вы получите ответ.

Что касается вашего вопроса всякий раз, когда вы публикуете вопрос SQL, всегда полезно опубликовать сценарий CREATE TABLE для создания таблиц, с которыми вы работаете, а также сценарий INSERT INTO для заполнения таблиц данными. Затем, пожалуйста, перечислите пример выходных данных, которые вы в настоящее время получаете, и как они отличаются от желаемого результата. Это позволяет другим пользователям смоделировать таблицы, с которыми вы работаете, и поиграть в той же ситуации, что и вы, поэтому наши ответы будут более точными.

Вы указали свой запрос, но не получили описания того, что происходит. Как выглядит результирующий набор при его запуске? Если он не запускается, какую ошибку вы получаете? Как выглядит ваш желаемый набор результатов по сравнению с тем, что ваш запрос дает вам сейчас (если что-нибудь)?

Я полагаю, что, глядя на то, что вы перечислили, есть 2 предложения:

  1. у вас предложение WHERE неуместно. Вы ставите его после оператора GROUP BY, оно должно быть перед ним.

  2. у вас нет правильного времени. Вы должны указать значения в своем предложении 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
;

Если эти предложения не дают того, что вы хотите, следуйте моему совету о том, что перечислить, чтобы уточнить ваш вопрос, и мы сделаем все возможное, чтобы помочь вам.

Надеюсь, это поможет.

...