Las tabulaciones cruzadas o tablas dinámicas son la respuesta. Desde allí, puede SELECCIONAR DESDE... INSERTAR EN... o crear una VISTA desde el único SELECCIONAR.
Algo como:
SELECT country,
MAX( IF( key='President', value, NULL ) ) AS President,
MAX( IF( key='Currency', value, NULL ) ) AS Currency,
...
FROM table
GROUP BY country;
Para más información:http://dev.mysql.com/tech -resources/articles/wizard/index.html