【问题标题】:MySQL: How to Count total orders by hour from a specific date rangeMySQL:如何从特定日期范围按小时计算总订单
【发布时间】:2022-01-15 16:30:06
【问题描述】:

Customer_placed_order_datetime

01 00:00:20

02 01:00:00

31 23:59:00

我想统计从 01 到 31 天每小时的订单总数

示例结果:

                  01-31 HOUR         total_orders

                  1st hour                500
                  2nd hour                400

【问题讨论】:

  • 只标记您使用的数据库。
  • 好。到目前为止,您尝试过什么?

标签: sql database


【解决方案1】:

许多 RDBMS 具有格式化日期和转换为字符串的功能。 例如,对于 PostgreSQL,您可以使用 TO_CHAR(date_value, string_format)。使用这种新格式的日期(仅询问 yyyyMMdd),您可以对订单进行分组和计数。 如果您标记您的 RDBMS,我可以更准确地帮助您

【讨论】:

  • 您好,感谢您的帮助。我使用 Big Query MySql 谷歌云,基本上我做一个案例研究来找出订单和每小时时间的相关性,比如一个食品应用程序。我想从第 1 天到第 31 天按小时计算 customer_placed_order 的总数。谢谢
  • 通常这应该可以工作:SELECT DATE_FORMAT(datetime, '%d') as day, DATE_FORMAT(datetime, '%H') as hour, COUNT(*) as total_orders FROM Customer_placed_order_datetime GROUP BY datetime
  • 函数未找到:DATE_FORMAT at [1:8] SELECT DATE_FORMAT(datetime, '%d') as day, DATE_FORMAT(datetime, '%H') as hour, COUNT(*) as total_orders FROM deductive-span-328102.FoodDelivery.FD123 按日期时间分组
  • 数据库名称为:deductive-span-328102.FoodDelivery.FD123,列名称为:Customer_placed_order_datetime
  • 查看 Google Big Query 的文档:https://cloud.google.com/bigquery/docs/reference/standard-sql/datetime_functions#extract。将 DATE_FORMAT 替换为 EXTRACT 函数 SELECT EXTRACT(DAY, datetime) as day, EXTRACT(HOUR, datetime) as hour, COUNT(*) as total_orders FROM Customer_placed_order_datetime GROUP BY datetime
猜你喜欢
  • 2020-04-18
  • 1970-01-01
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多