【发布时间】:2014-06-29 02:41:14
【问题描述】:
我有一个简单的表格,其中包含特定组的日期和总销售额:
date | totalsales
=======================
2014-05-01 | 3000
2014-05-02 | 3100
2014-05-03 | 3500
2014-05-04 | 3650
我喜欢计算一些东西,比如:
- 每天的销售额
- 平均销售额
- 增长百分比
结果应该看起来像(手动计算所以可能是错误的:))
date | sales | average | growth
=======================================
2014-05-01 | 0 | 0 | 0
2014-05-02 | 100 | 50 | 100
2014-05-03 | 400 | 166.66 | 400
2014-05-04 | 150 | 162.5 | 37.5
这甚至可以在 sql 语句中实现,还是我应该使用 PHP 或其他服务器软件计算?
【问题讨论】:
-
一切都可以在mysql中完成
-
您只需要 ORDER BY、SUM()、AVG() 和可能的 MAX()...
-
看看预期的输出,没那么简单
-
user468891 的评论指的是 MySQL Group by 语句和聚合。正如 Anthony Raymond 所指出的,这不是一个简单的 group by。要获得这些计算,您需要参考数据集中的先前记录。那是迷失在一个正常的群里了。这可以通过使用 ROW_NUMBER 创建一个偏移数据集来完成。示例发布在下面。