Calculated Values in SQL Console and ChartLab
Overview
ATSD supports ad hoc calculation in SQL Console and Charts services.
This article describes the use of the replace-value
setting in ChartLab and the LAG
function in SQL Console to derive percent change for a given dataset.
Data
Data is collected by the entity Eurostat tracking European Union Debt by Country, available in the Axibase Data Library.
SELECT date_format(time, 'yyyy') AS "Year", value AS "Debt (Million Euro)"
FROM lithuania
Year | Debt (Million Euro) |
---|---|
1995 | 1632.0 |
1996 | 2034.9 |
1997 | 2734.3 |
1998 | 3306.2 |
1999 | 3790.3 |
2000 | 4028.1 |
2001 | 4162.2 |
2002 | 4517.3 |
2003 | 5822.8 |
2004 | 7372.5 |
2005 | 10539.2 |
2006 | 15023.2 |
2007 | 21689.8 |
2008 | 25084.0 |
2009 | 22449.2 |
2010 | 20892.0 |
2011 | 20239.2 |
2012 | 20381.5 |
2013 | 19715.7 |
2014 | 19748.3 |
2015 | 20525.2 |
To calculate the percent growth of Lithuanian debt over the 20-year observation period, use baselines.
Three common baselines:
- Previous Year Baseline (PYB)
- Average Value Baseline (AVB)
- Final Year Baseline (FYB)
Previous Year Baseline
SELECT date_format(time, 'yyyy') AS "Year", value AS "Debt (Million Euro)", 100*((value)/LAG(value)-1) AS "Percent Change (PYB)"
FROM lithuania
ORDER BY datetime
The underlying formula in this query is simple:
PYB = 100 * [(x/y) - 1]
Where,
x = current year debt amount, and y = previous year debt amount`
| Year | Debt (Million Euro) | Percent Change (PYB) |
|------|---------------------|----------------------|
| 1995 | 1632.00 | null |
| 1996 | 2034.90 | 24.69 |
| 1997 | 2734.30 | 34.37 |
| 1998 | 3306.20 | 20.92 |
| 1999 | 3790.30 | 14.64 |
| 2000 | 4028.10 | 6.27 |
| 2001 | 4162.20 | 3.33 |
| 2002 | 4517.30 | 8.53 |
| 2003 | 5822.80 | 28.90 |
| 2004 | 7372.50 | 26.61 |
| 2005 | 10539.20 | 42.95 |
| 2006 | 15023.20 | 42.55 |
| 2007 | 21689.80 | 44.38 |
| 2008 | 25084.00 | 15.65 |
| 2009 | 22449.20 | -10.50 |
| 2010 | 20892.00 | -6.94 |
| 2011 | 20239.20 | -3.12 |
| 2012 | 20381.50 | 0.70 |
| 2013 | 19715.70 | -3.27 |
| 2014 | 19748.30 | 0.17 |
| 2015 | 20525.20 | 3.93 |
The LAG
function returns null
when no data is found.
Use the replace-value
setting to apply the same calculation in ChartLab. Open the Editor window in ChartLab and inspect the setting on line 16.
replace-value = (value/previousValue-1)*100
Track positive debt growth with an alert-expression
.
Inspect the alert-expression
syntax on lines 17 and 18.
alert-expression = value < 0
alert-style = fill: green
This setting renders all incidences of negative debt growth (debt growth less than zero) green, while positive debt growth is rendered red.
Average Value Baseline
SELECT AVG(value) AS "Debt (Million Euro)"
FROM lithuania
Debt (Million Euro) |
---|
12175.6 |
SELECT date_format(time, 'yyyy') AS "Year", value AS "Debt (Million Euro)", (100*((value)/12175.6-1)) AS "Percent Change (AVB)"
FROM lithuania
ORDER BY datetime
Year | Debt (Million Euro) | Percent Change (AVB) |
---|---|---|
1995 | 1632.0 | -86.6 |
1996 | 2034.9 | -83.3 |
1997 | 2734.3 | -77.5 |
1998 | 3306.2 | -72.8 |
1999 | 3790.3 | -68.9 |
2000 | 4028.1 | -66.9 |
2001 | 4162.2 | -65.8 |
2002 | 4517.3 | -62.9 |
2003 | 5822.8 | -52.2 |
2004 | 7372.5 | -39.4 |
2005 | 10539.2 | -13.4 |
2006 | 15023.2 | 23.4 |
2007 | 21689.8 | 78.1 |
2008 | 25084.0 | 106.0 |
2009 | 22449.2 | 84.4 |
2010 | 20892.0 | 71.6 |
2011 | 20239.2 | 66.2 |
2012 | 20381.5 | 67.4 |
2013 | 19715.7 | 61.9 |
2014 | 19748.3 | 62.2 |
2015 | 20525.2 | 68.6 |
Use the replace-value
setting in ChartLab.
replace-value = (value/12175.6-1)*100
Apply an alert-expression
to track years by percent deviation from the calculated average value.
Final Year Baseline
To calculate debt growth using FYB, use these queries:
SELECT last(value) AS "Final Year Baseline"
FROM lithuania
Final Year Baseline |
---|
20525.2 |
Insert the value into a percent change function.
SELECT date_format(time, 'yyyy') AS "Year", value AS "Debt (Million Euro)", (100*(value/20525.2-1)) AS "Percent Change (FYB)"
FROM lithuania
GROUP BY datetime, value
ORDER BY datetime
Year | Debt (Million Euro) | Percent Change (FYB) |
---|---|---|
1995 | 1632.0 | -92.0 |
1996 | 2034.9 | -90.1 |
1997 | 2734.3 | -86.7 |
1998 | 3306.2 | -83.9 |
1999 | 3790.3 | -81.5 |
2000 | 4028.1 | -80.4 |
2001 | 4162.2 | -79.7 |
2002 | 4517.3 | -78.0 |
2003 | 5822.8 | -71.6 |
2004 | 7372.5 | -64.1 |
2005 | 10539.2 | -48.7 |
2006 | 15023.2 | -26.8 |
2007 | 21689.8 | 5.7 |
2008 | 25084.0 | 22.2 |
2009 | 22449.2 | 9.4 |
2010 | 20892.0 | 1.8 |
2011 | 20239.2 | -1.4 |
2012 | 20381.5 | -0.7 |
2013 | 19715.7 | -3.9 |
2014 | 19748.3 | -3.8 |
2015 | 20525.2 | 0.0 |
The above graph shows percent deviation for Lithuanian government debt using the final year (2015) as a baseline.