按特殊情况分组

cbeh67ev  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(249)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

两年前关门了。
改进这个问题
我有两个表称为主网站和污损监测
主网站表
污损监测台
主网站表包含系统中的所有网站,而污损监控状态表则填充了每个网站的状态。我们可以添加任何日期和时间状态的网站状态是'安全','污损','破碎','正常',我想要的是'安全','正常','破碎计数只考虑每个网站的最后一个条目。需要帮忙吗?对不起,我英语不好,提前谢谢

d5vmydt9

d5vmydt91#

您可以将这些表连接在一起,然后对监视表执行左外部连接,以查找较新行。使用where子句可以忽略找到新行的任何行。
就像this:-

SELECT dm1.defacement_status, COUNT(dm1.id)
FROM master_website_table m
INNER JOIN defacement_monitor_table dm1
ON m.id = dm1.website_id
LEFT OUTER JOIN defacement_monitor_table dm2
ON m.id = dm2.website_id
AND dm1.defacement_datetime < dm2.defacement_datetime
WHERE dm2.id IS NULL
GROUP BY dm1.defacement_status

请注意,如果当前未使用任何状态,则该状态将不会出现在结果中(即,您不会得到0的计数)。最好有一个包含可能的状态的表(那么您的监视表可以只使用该表的id而不是状态的文本)。

相关问题