2016-10-20 5 views
1

У меня есть этот набор данных:Spotfire: Weighted Процент Расчет в BarChart

Kind  Weight 
A  3 
A  3 
A  3 
B  2 
B  2 
C  1 

Я хотел бы создать Spotfire BarChart, представляющий вклад различных Kind значений столбцов. Выражение обеспечивается Spotfire в этом случае:

Count()/THEN [Value]/Sum([Value]) OVER (All([Axis.X])) 

Но я хотел бы разделить это на стоимости веса колонке. Как спрашивает Spotfire для метода агрегирующего я попробовал это неудачно:

Count()/First([Weight]) THEN [Value]/Sum([Value]) OVER (All([Axis.X])) 

Для записи, я не использую вычисленное значение, потому что моя цель состоит в том, чтобы иметь динамический BarChart.

Заранее спасибо.

+0

что бы ваши ожидаемые результаты выглядят как? Можете ли вы приложить гистограмму, показывающую, что она представляет собой рендеринг, по сравнению с вашим желаемым выходом? – scsimon

+0

Я хотел бы иметь гистограмму, где в моем примере A, B и C имеют такое же значение, которое составляет 33%. 3 вхождения A делятся на их вес, также для B и C. В настоящее время A составляет 50%, B - 33% и C - 17%. – saad0n87

+0

. Ну C 1, поэтому 1/1 составляет 100% ... как это будет 33%? A должно быть 33, а B должно быть 50 ... как вы получите 33 для всех из них? – scsimon

ответ

1

на основе нужной логики, вы можете использовать это на VALUE AXIS вашей диаграммы Bar:

UniqueCount([Kind])/UniqueCount([Kind]) OVER (All([Axis.X])) 

Это будет работать, если Weight не не равна Count of Kind

Если ваш Weight может измениться , например, если Kind A имел вес 2 вместо 3, но все еще имел 3 строк, вы можете выполнить свою логику, выполнив следующие действия:

  1. Включить расчетный столбец: Count([Kind]) OVER ([Kind])/Max([Weight]) OVER ([Kind]). Назовите этот столбец WeightedWeight
  2. Используйте эту формулу на VALUE AXIS вашей гистограммы Max([WeightedWeight])/UniqueCount([Kind]) OVER (All([Axis.X]))
+0

Ваше решение с рассчитанными работами просто отлично. Большое спасибо за вашу помощь и терпение. – saad0n87

+0

Нет проблем. Сначала я был смущен, потому что ваша проблема была довольно абстрактной, но я рад, что могу помочь. Обязательно принимайте правильные ответы на все ваши вопросы. http://stackoverflow.com/help/someone-answers – scsimon