diff --git a/packages/grafana-data/src/transformations/fieldReducer.test.ts b/packages/grafana-data/src/transformations/fieldReducer.test.ts index 546f2fb5fe7..f2284503c33 100644 --- a/packages/grafana-data/src/transformations/fieldReducer.test.ts +++ b/packages/grafana-data/src/transformations/fieldReducer.test.ts @@ -315,6 +315,12 @@ describe('fieldReducer.ts', () => { expect(preciseStats[`p${percentile}`]).toEqual(percentile); }); }); + + // a number field can have empty strings as a result from previous transformations + it('should count an empty string as 0 if the field type is number', () => { + const numberField = createField('x', [1, '', 2], FieldType.number); + expect(reduce(numberField, ReducerID.sum)).toEqual(3); + }); }); describe('getFieldTypeForReducer', () => { diff --git a/packages/grafana-data/src/transformations/fieldReducer.ts b/packages/grafana-data/src/transformations/fieldReducer.ts index 92b64235d3d..813e8b2f2d2 100644 --- a/packages/grafana-data/src/transformations/fieldReducer.ts +++ b/packages/grafana-data/src/transformations/fieldReducer.ts @@ -527,7 +527,7 @@ export function doStandardCalcs(field: Field, ignoreNulls: boolean, nullAsZero: } if (isNumberField) { - calcs.sum += currentValue; + calcs.sum += currentValue || 0; calcs.allIsNull = false; calcs.nonNullCount++;