您好我想添加一个名为MMV的列,它将识别当前行之前和之后的第一行,该行大于该值。如果没有适用的行,则使用表格大小的最大值和分钟数。结果将是两次计算的最小值。
下面的图片显示了订单19-31但是基于表格的记录有50个条目的表格。只是excel的一个简单例子。
希望有人可以提供帮助。
提前致谢。
答案 0 :(得分:1)
一个想法是使用相关子查询。
使用其中两个,然后使用LEAST
select
idorder,
ordervalue,
least(
idorder -
(
select count(*)
from mytable m1
where m1.ordervalue > m.ordervalue
and m1.idorder < m.idorder
),
(
select count(*)
from mytable m1
where m1.ordervalue > m.ordervalue
and m1.idorder > m.idorder
) -
idorder
) as mmv
from mytable m;
或者在一个带有条件聚合的子查询中(即根据条件计算/累加):
select
idorder,
ordervalue,
(
select least(m.idorder - sum(m1.idorder < m.idorder),
sum(m1.idorder > m.idorder) - m.idorder)
from mytable m1
where m1.ordervalue > m.ordervalue
) as mmv
from mytable m;
第二个查询使用MySQL的true = 1,false = 0。