【发布时间】:2016-08-04 18:36:22
【问题描述】:
我的桌子是这样的:
|| date || bytes || table ||
我需要根据大小和年份计算出所有表格的年增长率(百分比增加或减少)。我有一个查询,它主要为我提供我想要的信息,我可以解析并使用外部工具来生成所需的数据,但我想知道是否有一种简单的方法可以直接在查询中执行百分比增加计算?
这就是我的查询现在的样子:
SELECT
YEAR(date) AS YEAR,
table,
SUM(bytes) / 1024 / 1024 / 1024 AS total
FROM
insertions
GROUP BY table, YEAR (date)
ORDER BY date;
是否可以有一个字段具有当前表相对于上一年的百分比增加/减少?
样本输出:
| date | bytes | table |
| 2015 | 100 | accounting |
| 2016 | 150 | accounting |
| 2015 | 1 | it |
| 2016 | 100 | it |
随着百分比的增加,它应该看起来像:
| date | bytes | table | percentage
| 2015 | 100 | accounting | 0
| 2016 | 150 | accounting | 50
| 2015 | 1 | it | 0
| 2016 | 100 | it | 9900
【问题讨论】:
-
能否请您展示一些示例数据和预期结果
-
MySQL 是否执行该查询?!?
-
是的,它确实执行并正确生成了每个表/每年的分组。
-
说实话,这在应用程序的较高层最容易实现——因为 MySQL 不支持分析函数,在数据库中实现它的唯一方法是使用涉及用户变量的 hack ...