【问题标题】:Get number of orders made for each hour in a certain year获取特定年份每小时的订单数量
【发布时间】:2019-06-03 14:37:13
【问题描述】:

在一个电子商务网站中,我有一个包含以下字段的数据库:

id
date_purchased
...

date_purchased 字段的当前格式为:2018-02-14 16:27:37(年-月-日时-分-秒)

例如,我想获得由 ASC 订购的 2018 年每小时的订单数量。

我不知道如何按某年订购,也无法计算当年每小时的订单数量。

类似:

SELECT count(*) 
FROM table 
WHERE (
    SELECT * 
    FROM table 
    GROUP BY DATEPART(hour, [date_purchased]) ASC
) 
GROUP BY year(date_purchased) ASC

【问题讨论】:

  • date_purchased 文本还是日期时间/时间戳字段?
  • @JuanCarlosOropeza 日期时间
  • 您标记了mysql,但您的 SQL 读取为 T-sql (microsoft sql server)。是哪个?
  • 向我们展示一些示例数据和期望输出。
  • @JNevill 是 mysql,我在 mysql 中找不到 DATEPART 的等价物

标签: mysql sql


【解决方案1】:

我认为以下内容可以满足您在 mysql 中的要求:

  SELECT HOUR(date_purchased) hour_purchased, count(*) hour_Count
  FROM yourtable
  WHERE YEAR(date_purchased) = 2018
  GROUP BY HOUR(date_purchased)
  ORDER BY hour_count DESC

【讨论】:

  • 谢谢!我没想到有人会这么简单地回答这个问题,向您致敬,先生。
  • 请注意,date_purchased BETWEEN '2018-01-01' AND '2018-12-31' 可以利用索引,如果存在的话
猜你喜欢
  • 2017-12-04
  • 2018-11-26
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多