-1
我有mysql表称为'peak_data'。我新来的MySQL和PHP。mysql查询比较以前,当前和下一个值
这里是峰值
我已经通过使用的strtotime()转换时间数据转换成UNIX时间的定义。所以使用这个值我们可以唯一地识别每一行。
我有mysql表称为'peak_data'。我新来的MySQL和PHP。mysql查询比较以前,当前和下一个值
这里是峰值
我已经通过使用的strtotime()转换时间数据转换成UNIX时间的定义。所以使用这个值我们可以唯一地识别每一行。
挑战是获取“y”的下一个和前一个值(或任何值列被调用)。您可以仅使用相关子查询在SQL中执行此操作。
一旦你有了这些值,你可以使用聚合再算上峰的数目和最大峰值:
select sum(nexty < y and prevy < y) as NumPeaks,
max(case when nexty < y and prevy < y then y end) as MaxPeak
from (select pd.*,
(select y
from peak_data pd1
where pd1.time < pd.time
order by pd1.time desc
limit 1
) prevy,
(select y
from peak_data pd1
where pd1.time > pd.time
order by pd1.time asc
limit 1
) nexty
from peak_data pd
) pd;
注意,最大峰值不一定是“Y”的最大值,因为表中最新的或第一个值可能是最大值。但是,他们并不是按照你的定义算作高峰。
这是一个功课题吗?你在找SQL还是数学? – Zarathuztra
可以比较一下使用mysql做bu吗?这不是家庭作业。从报纸得到想法。 – 9pixle
啊,那么这超出了我对SQL和MySQL的知识,所以请回答下面的答案:) – Zarathuztra