Если не обращать внимание на то, что Вы сфантазировали два новых столбца, то легко:
SELECT Table1.user_id,
Table1.`date`,
SUM(Table1.amount) as sum,
Table1.currency
FROM new_site.Table1 Table1
GROUP BY Table1.currency, Table1.`date`
А если Вам нужно генерировать столбцы, то увы, их нужно знать заранее и дописывать в запрос динамически:
SELECT
Table1.user_id,
Table1.`date`,
(SELECT SUM(amount) FROM Table1 tbl2 WHERE tbl2.`date` = Table1.`date` AND tbl2.currency = 'USD') as USD,
(SELECT SUM(amount) FROM Table1 tbl2 WHERE tbl2.`date` = Table1.`date` AND tbl2.currency = 'EUR') as EUR
FROM new_site.Table1 Table1
GROUP BY Table1.`date`