Why are there two transaction outputs when sending to one address? I did a small transaction some days ago:

https://www.blockchain.com/btc/tx/4c07a07dfd9d5b79d168ec6835df876c64e82350a8f9211bf586d858a5aeb9ba

Some info:


1JFWE8THcAQQRYx99c43DXSGyoPL9Zs62D is my wallet
1PCGNxgheKTaeT6xvTabcY8ZbS3gDpFtb is the wallet I sent 0.22 BTC


Questions:


Who is 147krm8yWUcVq9Ta25h679TCpsEznzgvRz?
Why there is more than one output?
147krm8yWUcVq9Ta25h679TCpsEznzgvRz is the change from the transaction. There was more than one output because you didn't have any previous transactions (sometimes thought of as "coins") that added up the exact amount of the transaction. 

So your client picked some coins that added up to at least that amount and then created a new address to receive the leftover amount. So, 147krm8yWUcVq9Ta25h679TCpsEznzgvRz is you. You just don't know it because the client isn't good at disclosing that you. Essentially you wanted to send 22 cents, but only had dollar bills in your wallet. So the 0.78 was the leftover amount and the client created a new address to hold it rather than reusing 1JFWE8THcAQQRYx99c43DXSGyoPL9Zs62D.

It seems that this behavior of the Qt client (silently creating new addresses that receive the change from transactions) was created for privacy reasons. I believe the thinking was, why send the change back to the original address when a new address could easily be created? In that way, it's not even obvious whether your transaction was a payment of 0.78 BTC with a change of 0.22, or a payment of 0.22 BTC with a change of 0.78 BTC. But it seems to be causing a lot of confusion for users, based on what I see on this stack exchange. In my opinion, it might be better if the default client sent the change back to the sending address. Or if, at least, it showed that change address and its balance somewhere.

Some other wallets do let you manually select which address should receive the change from a transaction.