クロスタブまたはピボットテーブルがその答えです。そこから、SELECT FROM ... INSERT INTO ...を実行するか、単一のSELECTからVIEWを作成できます。
次のようなもの:
SELECT country,
MAX( IF( key='President', value, NULL ) ) AS President,
MAX( IF( key='Currency', value, NULL ) ) AS Currency,
...
FROM table
GROUP BY country;
詳細情報: http://dev.mysql.com/tech -resources / articles / widget / index.html