我需要有关Oracle 10g中查询的帮助,
这是我的问题:
有一个表存储来自不同设备的信号状态。
我想准备一个查询,该查询显示结果信号状态根据SS1和SS2信号而变化。
当我看到该图时,这似乎很简单,但是我无法使用解析函数编写查询。
表创建和插入脚本为here.
提前致谢,
最佳答案
SELECT s2.*,
CASE WHEN ss1 = 'down' AND ss2 = 'down' THEN 'down' ELSE 'up' END AS result
FROM (
SELECT s.*,
LAST_VALUE(DECODE(signal_id, 'SS1', signal_status, NULL) IGNORE NULLS) OVER (ORDER BY signal_date) AS ss1,
LAST_VALUE(DECODE(signal_id, 'SS2', signal_status, NULL) IGNORE NULLS) OVER (ORDER BY signal_date) AS ss2
FROM t_signal s
) s2
ORDER BY
signal_date
关于oracle - 可以使用oracle分析功能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2100438/