mysql - MYSQL - 比较同一表中的行并显示不同
问题描述
我想比较同一张表中的行并显示与过去数据相比发生了什么变化
例如:如果我的指标表如下
id | Server | Component | Status | Date
------+----------+-------------------------------------------
1 | Node1 | Service | Compliant | 10-1-2018
2 | Node1 | IP | Compliant | 10-1-2018
3 | Node2 | Service | Non-Compliant | 10-1-2018
4 | Node2 | IP | Compliant | 10-1-2018
5 | Node1 | Service | Compliant | 09-1-2018
6 | Node1 | IP | Compliant | 09-1-2018
7 | Node2 | Service | Compliant | 09-1-2018
8 | Node2 | IP | Compliant | 09-1-2018
我想要的结果如下,因为与前一天的状态相比,Node 2 服务合规状态已更改(变为不合规)
Node2 | Service | Non-Compliant | 09-1-2018
我想要的基本上是与最后一天的数据相比,跟踪节点的合规状态变化
谢谢
解决方案
http://sqlfiddle.com/#!9/1b0c46/1
SELECT t_next.*
FROM t1 t_prev
JOIN t1 t_next
ON t_next.server = t_prev.server
AND t_next.component = t_prev.component
AND t_next.date = t_prev.date + INTERVAL 1 DAY
AND t_next.status != t_prev.status
WHERE t_prev.date = '2018-01-09'
推荐阅读
- c - c 随机行中帕斯卡三角形中所有系数的平方和
- python - 即使 pip 说它已安装,Python 也无法导入 gdal - ubuntu hirsute & impish specific
- java - Android SecurityException:权限拒绝写入和共享文件
- memory - 如果内存是 8 位,MIPS lw 和 sw 是如何工作的
- amazon-web-services - 无法连接到 AWS EC2 实例 - 连接被拒绝
- python - 将 logging.debug 保存在变量中或一一发送
- javascript - 解析一个数字,但将负数保留在文本框中
- html - 如何在使用 CSS 时为背景 URL 图像设置负边距?
- python - 类型检查通用数据类时出现不兼容的类型错误
- javascript - 在反应原生博览会中测量分贝