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
1条答案
按热度按时间d5vmydt91#
您可以将这些表连接在一起,然后对监视表执行左外部连接,以查找较新行。使用where子句可以忽略找到新行的任何行。
就像this:-
请注意,如果当前未使用任何状态,则该状态将不会出现在结果中(即,您不会得到0的计数)。最好有一个包含可能的状态的表(那么您的监视表可以只使用该表的id而不是状态的文本)。