希望有人可以帮我这个:
我想在MYSQL中创建这个表。我只有DATE和Closing Columns。我需要创建第三列,但只需要分类,如果行关闭值小于它上面的行,则为YES。因此,为什么顶行的那两列是空的,因为未来的价格是不可用的。
如果可能的话,第四列,其中行上一行的变化大于1%,那么给它1,否则为0.
DATE Closing Change GOODorBAD
11/21/2017 155.5 - -
11/20/2017 153.83 yes 1
11/17/2017 153.95 no 0
11/16/2017 154.54 no 0
11/15/2017 152.59 yes 1
11/14/2017 153.31 no 0
11/13/2017 153.87 no 0
11/10/2017 153.68 yes 0
11/9/2017 153.69 no 0
11/8/2017 154.5 no 0
感谢任何帮助。谢谢
答案 0 :(得分:0)
您可以在CASE
内使用SELECT
条件。
UPDATE TEST_TABLE T
SET T.CHANGE = (SELECT CASE WHEN T.CLOSING < T2.CLOSING
THEN 'YES'
WHEN T.CLOSING > T2.CLOSING
THEN 'NO'
ELSE
NULL
END
FROM TEST_TABLE T2
WHERE T2.DATE > T.DATE
ORDER BY T2.DATE LIMIT 1),
T.GOODORBAD = (SELECT CASE WHEN (T2.CLOSING - T.CLOSING) > (T.CLOSING / 100)
THEN '1'
WHEN (T2.CLOSING - T.CLOSING) <= (T.CLOSING / 100)
THEN '0'
ELSE
NULL
END
FROM TEST_TABLE T2
WHERE T2.DATE > T.DATE
ORDER BY T2.DATE LIMIT 1);