Dette er kun betinget aggregering:
select pn, sum(loc = 'a') as a, sum(loc = 'b') as b
from table1
group by pn;
Hvis du har en ukendt liste over loc
værdier, så har du muligvis brug for en dynamisk forespørgsel. Google "MySQL dynamisk pivot".