Skip to main navigation Skip to main content Skip to page footer

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;