随着时间推移获得计数的最佳方法是什么?

时间:2020-03-28 00:26:49

标签: mysql count where-clause

我正在尝试获得一张桌子,该桌子上有过夜(晚上10点至凌晨6点之间)消费的食物数量。最好的方法是什么?

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 :(得分:-1)

@CarterHandby欢迎来到Stackoverflow!您发布问题的方式还不清楚。请read this post关于如何提出问题,以使帮助您的人变得更容易,并使您更有可能获得答案。

对于您的问题,每当发布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
;

如果这些建议不能满足您的需求,请按照我的建议列出您要列出的内容,以澄清您的问题,我们将尽最大努力为您提供帮助。

希望这会有所帮助。

相关问题