我想从mysql数据库中找到两个值的precent更改。
我设置了一个cron作业,大约每小时插入一次值..
每个值都有一个与之关联的unix时间戳,我希望获得前几天(~24小时)的值,并与当前值进行比较,以获得增加或减少的百分比。
表格如下:
+-----+----+
|value|time|
+-----+----+
答案 0 :(得分:1)
假设前一天存在完全匹配,请尝试此操作:
SELECT T1.time, (T1.value - T2.value) * 100 / T2.value AS percent_change
FROM yourtable T1
JOIN yourtable T2
ON T1.time = T2.time + (60 * 60 * 24) --# seconds in a day
WHERE T1.time > ....
答案 1 :(得分:0)
您需要将第1天和第2天的值相加,是吗?这将使您在日历日之间获得读数之间的变化。
SELECT t1.time, (sum(t1.value) - sum(t2.value))
from table t1, table t2
where t1.time>t2.time
and t1.time = t2.time + (60 * 60 * 24)
group by date(from_unixtime(t1.time)