Questa è solo un'aggregazione condizionale:
select pn, sum(loc = 'a') as a, sum(loc = 'b') as b
from table1
group by pn;
Se hai un elenco sconosciuto di loc
valori, potrebbe essere necessaria una query dinamica. Google "Perno dinamico MySQL".