I have data something like
And I want to add another column which calculate percentage for “Number” column
Basically
PercentageX = (NumberX) / (NumberX + NumberY + NumberZ)
This seems so genuine and easy but I can’t find an option to do so
I have data something like
And I want to add another column which calculate percentage for “Number” column
Basically
PercentageX = (NumberX) / (NumberX + NumberY + NumberZ)
This seems so genuine and easy but I can’t find an option to do so
Hey @yosiasz how it is calculating percentage ? You have just added the unit right ?
as I mentioned in the post it has to calculate this formula
The numbers in the example that I have given adds upto 100 just to simply the things, but it will not always be the case
You give some more clarification if there are 2 rows with numbers 80, 120 then the percentage should be 40% and 60%
ah gotcha! sorry totally missed the formula. so the data is vertically stacked? What if there are 500 rows? Also what is your data source? Might be better to do it in the data source itself than grafana
No worries, I shouldn’t have added the an example that sums up to 100 haha.
Datasource is actually infinity - json and it’s an external api so it’s not possible for me to change how I get the data unless I code a wrapped on top of it to calculate the sum which is a lot work.
Numbers of rows should ideally be not that huge
please post the structure of the data coming from api minus confidential stuff, obfuscate it. I think one could use UQL for this.
that way we can emulate your stack otherwise it would be guess work, back and forth questions
The json object that I am getting is formatted like this @yosiasz
{
"data": [
{
"String": "A",
"Number": 80
},
{
"String": "B",
"number": 120
}
]
}
Just checking in if you were able to find something to solve this @yosiasz
UQL + JSONATA is what you needed I think. For example,
{ "data": [
{ "String": "A", "Number": 80 },
{ "String": "B", "Number": 120 }
] }
parse-json
| jsonata "$map(data,function($v){{ 'S': $v.String, 'N': $v.Number, 'P': $v.Number/$sum(data[*].Number)}})"
@adityavermamanit learn jsonata using this cool online tool
Appreciate the reply @yesoreyeram ! This is what I wanted !