MySQL加权平均值

时间:2015-12-13 12:18:45

标签: mysql sql database

我在PHPMyAdmin上有一个SQL数据库,我正在尝试为它编写查询。

我想写的一个查询是:查找包含日期时间的列的平均值并显示该平均值。我遇到的问题是一件物品同时被带了两次。表名是Orders。例如:

here is a picture of the data

我该如何编写这个SQL查询?

最终结果我想要一个日期时间,它是上述所有日期时间的平均值。记住底部数据时间数字必须计算平均值的两倍。

谢谢!

1 个答案:

答案 0 :(得分:2)

哇,这是一个艰难的。但看起来我的工作正常。我尝试了几件事,但毕竟无法使用mysql avg函数:

SELECT FROM_UNIXTIME(SUM(Quantity * UNIX_TIMESTAMP(DateTimeStart)) / SUM(Quantity)) AS `avg-time` FROM orders;

我是如何处理此查询的?

  1. 我认为您的表名为'orders'。
  2. 要计算日期,最好先将日期转换为unix timestamps。我使用UNIX_TIMESTAMP mysql函数来执行此操作。
  3. 我将每个datetimestart(作为unix时间戳)与其数量相乘。
  4. 我计算了那些的总和。
  5. 我将此除以总数
  6. 我们现在可以完成。但我想你想再次使用一个可读形式(我实际上也是如此),所以要将平均unix时间戳转换回可读日期,我使用FROM_UNIXTIME