2016-10-18 8 views
0

フィールド内の値を集計する棒グラフを作成しようとしていますが、それぞれの一意の識別子に対してのみです。例えば、私のデータのために:私は本当に最終的には、条件により、これらのデータを集計するため、合計Spotfireでユニークな識別子を超えました

Condition CT_ID Enrollment Company 
I   5127 24   H 
J   5127 24   H 
P   5127 24   H 
I   5127 24   O 
J   5127 24   O 
P   5127 24   O 
L   27668 387   C 
R   27668 387   C 
D   38190 650   D 
Q   38190 650   D 
F   38785 30   A 
E   39682 30   B 
M   41818 17   I 
O   44093 188   G 
A   54850 18   K 
G   59183    F 
C   59891 266   J 
G   61142 48   F 
H   61425 28   L 
K   61449    N 
A   61793 12   E 
N   61793 12   E 
B   61910 120   M 
B   61917 120   M 
B   61961 130   M 

または、私はだけではなく、[CT_ID]の条件によって頼っ上記のデータを表示してみましょう。

Condition CT_ID Enrollment Company 
A   54850 18   K 
A   61793 12   E 
B   61910 120   M 
B   61917 120   M 
B   61961 130   M 
C   59891 266   J 
D   38190 650   D 
E   39682 30   B 
F   38785 30   A 
G   59183    F 
G   61142 48   F 
H   61425 28   L 
I   5127 24   H 
I   5127 24   O 
J   5127 24   H 
J   5127 24   O 
K   61449    N 
L   27668 387   C 
M   41818 17   I 
N   61793 12   E 
O   44093 188   G 
P   5127 24   H 
P   5127 24   O 
Q   38190 650   D 
R   27668 387   C 

条件と会社の行が異なる値で複製されます。 CT_IDはレコードの識別子です。

私は登録欄を要約したいと思っていますが、私は超過します。だから私は次のようなカスタム式を作ることができると思った。

Sum(Avg([Enrollment]) OVER ([CT_ID])) 

しかしこれはどういうわけか有効な表現ではない。どこが間違っていますか?

私の棒グラフでは、カテゴリ軸として条件を、値軸として登録をしたいと思います。次の表に、Enrollment値の計算方法を示します。条件P、I、およびJ.に焦点を当て

Condition Enrollment 
A   30 
B   370 
C   266 
D   650 
E   30 
F   30 
G   48 
H   28 
I   24 
J   24 
K 
L   387 
M   17 
N   12 
O   188 
P   24 
Q   650 
R   387 

私の現在のソリューションは、ランク関数を使用してのみ、それぞれユニークなCT_IDのための最初の行の登録情報を置きますが、私は、データをフィルタリング起動したとき、それは単純に間違っています。たとえば、上のデータセットでは、CT_ID 5127の最初の行のEnrollment値しかありませんでした。条件 "I"(最初の行のもの)を除外すると、Enrollment値はゼロになります。

ご提供いただけるご支援をお待ちしております。私はOVER式の専門家ではないので、うまくいけば簡単な解決策があります!

+1

7.0より前のバージョンでは、ネストされた集約は許可されていません。 7.0または7.5以外のものを使用していますか? – scsimon

+0

私は7.0.1を使用しています。 – scrrd

答えて

0

このコメントには長すぎる...

あなたは、いくつかの期待される結果を提供することができますか?それぞれ CT_IDは1つの値しか持つことができないように見えるので、そのうちの SUMは値のいずれかになります。そうでない場合は、複製を決定するものは何ですか?

上記のコードで試していたことを達成する方法は次のとおりですが、Enrollmentの値を与えるだけではありません。CT_IDは一見値が1つしかありません。

Sum([Enrollment]) over ([CT_ID])/Count() OVER ([CT_ID]) 

また、単に使用することができFirst()

First([Enrollment]) OVER ([CT_ID]) 

EDIT

あなたは一部重複とを持っているので、いくつかのない...ちょうどの平均に重複を分割しましょう存在する複製の数この計算列を挿入します。

Max([Enrollment]) over (Intersect([CT_ID],[Condition]))/Count([Enrollment]) over (Intersect([CT_ID],[Condition])) 

は、その後、あなたが重複して同じCondition, CT_ID, and Enrollment値であり、重複を無視する、これまでどのような表現でEnrollmentの代わりに、この列を使用しています。

たとえば...Condition = P and CT_ID = 5127の行は24の代わりに12になります。

+0

だから、これらはどちらもクロステーブルでうまくいくと思いますが、どちらも私の棒グラフでは働いていません。集計を追加しても(例えば、 '合計(最初の([Enrollment])OVER([CT_ID]))')、それはまだ有効ではないと言います。 – scrrd

+0

私はまた、私の最終目標がどんなものであるべきかを説明するうえで役立つ、より詳細な記事を投稿しました。 – scrrd

+0

@scrrdが表示されます。私は編集を加えました。 – scsimon

関連する問題