MYSQL :如何利用其趋势跟踪价值的变化,如果值下降,则趋势为-1,如果增加,则为1和0。
例如
id_indicator value Trend
1 0 0
1 1 1
1 5 1
1 4 -1
2 1 0
2 -8 -1
2 0 1 我怎样才能得到趋势专栏?是否可以在“选择”语句中添加包含趋势值的临时列?
发布于 2017-01-06 16:38:01
使用myslq变量跟踪前几行
SET @prev = 0;
SELECT
id_indicator,
value,
-- IF(value > @prev, 1, IF(value < @prev , -1, 0)) AS trend,
SIGN(value-@prev) AS trend, -- nicer solution thx to @spencer7593
@prev:=value FROM `the_table`第四列的唯一目的是将当前值赋给@prev,以便在下一行迭代中使用它。
拥有当前和以前的值,您几乎可以使用它们编写任意表达式。
https://stackoverflow.com/questions/41509627
复制相似问题