MySQL中如何計(jì)算同比環(huán)比是一個(gè)比較常見的問題,以下是一些解決方案:
同比計(jì)算
SELECT t1.`date`, t1.`value`, (t1.`value` - t2.`value`) / t2.`value` AS `yoy` FROM `table_name` t1 LEFT JOIN `table_name` t2 ON DATE_SUB(t2.`date`, INTERVAL 1 YEAR) = t1.`date` WHERE t1.`date` = '2020-01-01';
上面的代碼中,我們通過左連接自己的方式,找到同一天前一年的數(shù)據(jù),然后計(jì)算同比增長率。
環(huán)比計(jì)算
SELECT t1.`date`, t1.`value`, (t1.`value` - t2.`value`) / t2.`value` AS `mom` FROM `table_name` t1 LEFT JOIN `table_name` t2 ON DATE_SUB(t2.`date`, INTERVAL 1 MONTH) = t1.`date` WHERE t1.`date` = '2020-01-01';
上面的代碼和同比計(jì)算類似,只是我們找到的是上一個(gè)月的數(shù)據(jù),然后計(jì)算環(huán)比增長率。