Oneliner to merge lines with same first field
Retina, 17 bytes

12 bytes saved thanks to @MartinEnder
1 byte saved thanks to @jimmy23013

Scored in ISO 8859-1 encoded bytes.
Uses ; instead of | as the input field separator.
(?&lt;=(.+;).+)¶\1
%

Try it online.