Determining the score of a group of users in a tag is relatively easy because that only requires a sum of the score field per post per user. This query does exactly that:
select u.id as [User Link]
, sum(score) as totalscore
from posts p
inner join posttags pt on pt.postid = p.id
or pt.postid = p.parentid
inner join tags t on t.id = pt.tagid
inner join users u on u.id = p.owneruserid
where tagname = ##tag1:string## collate SQL_Latin1_General_CP1_CI_AI
and location like '%'+ ##location:string## + '%' collate SQL_Latin1_General_CP1_CI_AI
group by u.id
order by sum(score) desc
To get an approximate reputation you need to join with the votes table and then this becomes more complex quickly.
Do notice that location is a user maintained field, there is no guarantee the user is near that Location at all.