Crea una stringa sql per mysql che mi conta i records raggruppati per mese e per anno nel campo data.
Inserisci una colonna che mi calcola la percentuale di incremento e decremento dei totali del mese precedente
Per calcolare la percentuale di incremento/decremento rispetto al mese precedente, possiamo usare una CTE (Common Table Expression) oppure una subquery con LAG(), che รจ supportata da MySQL 8.0+.
Le percentuali devono essere senza virgola.
WITH conteggi_mensili AS (
SELECT
YEAR(data) AS anno,
MONTH(data) AS mese,
COUNT(*) AS totale_record
FROM
tua_tabella
GROUP BY
YEAR(data), MONTH(data)
)
SELECT
anno,
mese,
totale_record,
LAG(totale_record) OVER (ORDER BY anno, mese) AS record_precedente,
ROUND(
IFNULL(
((totale_record - LAG(totale_record) OVER (ORDER BY anno, mese)) / LAG(totale_record) OVER (ORDER BY anno, mese)) * 100,
0
),
0
) AS percentuale_variazione
FROM
conteggi_mensili
ORDER BY
anno, mese;