我有点失去了我应该做什么样的SQL查询来实现我想要的目标。
我们说我有三张桌子:
select * FROM trip;
| trip_id | title | description
----------------------------------
| 1 | title1 | desc1 |
| 2 | title2 | desc2 |
| 3 | title3 | desc3 |
| 4 | title4 | desc4 |
| 5 | title5 | desc5 |
| 6 | title6 | desc6 |
select * FROM weekly_report;
| report_id | trip_id| incident_id
----------------------------------
| 1 | 1 | (null) |
| 2 | 1 | (null) |
| 3 | 1 | 1 |
| 4 | 2 | 2 |
| 5 | 3 | 3 |
| 6 | 3 | (null) |
select * FROM incident;
| incident_id | error_code |
----------------------------------
| 1 | 22223 |
| 2 | 25456 |
| 3 | 25456 |
所以对于一点操作知识:
我想在单个查询中找到(或者如果必须是子查询),那么在至少一周内发生了为error_code声明的事件的旅行次数" 25456& #34;
样本数据的预期结果:2(因为行程2和3存在错误代码为25456的事件)。
如果需要,我可以解释更多,是否有人愿意帮助我?
谢谢,
答案 0 :(得分:0)
试试这个:
SELECT w.trip_id
FROM incident i
INNER JOIN weekly_report w ON i.incident_id=w.incident_id
WHERE error_code='25456'
如果你想要计数,那么
SELECT COUNT(w.trip_id)
FROM incident i
INNER JOIN weekly_report w ON i.incident_id=w.incident_id
WHERE error_code='25456'
答案 1 :(得分:0)
您需要为相关事件计算不同的行程
select count(distinct w.trip_id)
from weekly_report w
inner join incident i
on w.incident_id = i.incident_id
where i.error_code = 25456;