2016-11-17 63 views
-3

您好我有一个像下面比较值和确定趋势

id_indicator value trend date_data 
      1  0  0 2011-08-18 09:16:15 
      1  2  1 2011-08-18 10:16:15 
      1  1 -1 2011-08-18 11:16:15 
      1  2  1 2011-08-18 12:16:15 
      2 21  0 2011-08-18 13:16:15 
      2 21  0 2011-08-18 14:16:15 
      2 21  0 2011-08-18 15:16:15 
      3  3  0 2011-08-18 16:16:15 
      3  4  1 2011-08-18 17:16:15 
      3  4  0 2011-08-18 18:16:15 
      4  4  0 2011-08-18 19:16:15 

表包含基于时间和基于价值观另一列趋势指标及其价值观在MySQL数据库中的表。最初所有的趋势是0,那么如果下一个指标值上升比趋势应该是1,如果价值下降比趋势应该是-1,如果价值不变趋势应该是0.

但我已经知道一些的趋势值未正确输入到表格中。现在我需要帮助来确定有多少趋势值插入错误,并按指标值计数组。

我会非常感激你的帮助

感谢

+0

见http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very -simple-sql-query - 此外,数据集是完全正确的,所以除了可能完全删除多余的“趋势”列,这里没有什么可做的。 – Strawberry

+0

我给出的数据不是真实的数据,但这是表结构。真正的数据包含大量不正确的趋势值,这里的数据也非常重要,因为它出现在不同的时间 – Sumon

+0

请参阅http://stackoverflow.com/questions/41509627/mysql-how-to-keep-track-of-change-in-value -using-its-trend/41510223这些似乎是作业问题 –

回答

0

你可以使用相关子查询查找以前的值。

SELECT 
    *, 
    (SELECT lookup.value 
     FROM yourTable AS lookup 
     WHERE lookup.id_indicator = yourTable.id_indicator 
     AND lookup.date_data < yourTable.date_data 
    ORDER BY lookup.date_data DESC 
     LIMIT 1 
    ) AS previous_value 
FROM 
    yourTable 
+0

我没有得到任何结果 – Sumon