Чтобы увидеть, как каждое «совпадение» дает количественную оценку различным классификациям, я бы добавил значения в виде столбцов в наборе результатов.
select
m.matchID,
{whatever other columns},
count(*) MatchCount
from
match m,
matchShots ms
where
m.matchID = ms.MatchID
and ( m.shot_Limit = 1 or m.shot_Limit = 3)
group by
m.matchID
having
MatchCount >= m.Shot_Limit