现在hive中有两张表两表之间可以用sbtm字段进行关联一个是设备信号表会存储设备上送信息表示设备在线另一个是设备表存储着所有的设备信息其中有sbtm字段为设备idsbzt字段值为15为设备安装状态youyunrq为设备安装的日期怎么判断设备在安装后从未上线
可以通过左连接设备表和设备信号表,并使用筛选条件找出所有设备安装日期在设备信号表记录之前的设备,即可以判断设备在安装后从未上线。
具体操作如下:
SELECT d.sbtm, d.sbzt, d.youyunrq
FROM 设备表 d
LEFT JOIN 设备信号表 s ON d.sbtm = s.sbtm
WHERE s.sbtm IS NULL
AND d.sbzt = 15
AND d.youyunrq < CURRENT_DATE()
解释:
- 使用LEFT JOIN将设备表和设备信号表进行关联,设备表为左表,设备信号表为右表;
- 在WHERE子句中,使用s.sbtm IS NULL筛选出左表(即设备表)中没有与右表(即设备信号表)匹配的记录,即找出所有从未上线的设备;
- 使用d.sbzt = 15筛选出设备安装状态为15的设备;
- 使用d.youyunrq < CURRENT_DATE()筛选出设备安装日期在当前日期之前的设备。
原文地址: https://www.cveoy.top/t/topic/I6D 著作权归作者所有。请勿转载和采集!