How can one calculate percentage from previous week in aggregate query?
When you use MySQL >= 8.0, you can use CTEs (common table expressions)

 ;
WITH 
    (
        SELECT  DATE(s.created) as "Date",
                COUNT(s.id) AS "Accounts credited",
                SUM(s.withdrawal) "Total Credited"
            FROM  statements s
            WHERE  s.status_id IN ('OPEN', 'PENDING')
            GROUP BY  DATE(s.created)
            ORDER BY  s.created DESC 
    ) AS cte 
SELECT  cte.*,
        100 * (cte.`Total Credited` - prev.`Total Credited`) /
              prev.`Total Credited`  AS "Difference in %"
    FROM  cte
    LEFT JOIN  cte prev  ON cte.`Date` = prev.`Date` - INTERVAL 7 DAY;


If you use an earlier version, just replace the CTE with appropriate subqueries, like 

SELECT &lt;your_fancy_percentage_calculation&gt; 
FROM (&lt;cte from above&gt;) a 
LEFT JOIN (&lt;cte from above&gt;) b ON a.Date = b.Date - INTERVAL 7 DAY;


MySQL is smart enough to not execute the same query twice, I think.

Or you create a view and use this.