我正在尝试创建一个条形图,用于汇总字段中的值,但仅针对每个唯一标识符。例如,对于我的数据:
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]))
但这不是一个有效的表达方式。我哪里错了?
对于我的条形图,我想将Condition作为类别轴,将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的注册值。如果我过滤掉条件"我" (第一行中的那个),现在注册值为零!
非常感谢您提供的任何帮助!我不是关于OVER表达的专家,所以希望有一个简单的解决方案!
答案 0 :(得分:0)
这个评论太长了......
您能提供一些预期的结果吗?看起来每个CT_ID
只能有一个值,所以SUM
中的Enrollment
区别于任何一个值......对吗?如果不是,那么什么决定重复?
以下是如何在上面的代码中完成您尝试的内容 - 但是从您的测试数据中获取CT_ID
的价值不仅仅因为每个Sum([Enrollment]) over ([CT_ID]) / Count() OVER ([CT_ID])
看似只有First()
有一个值(重复)。
First([Enrollment]) OVER ([CT_ID])
您也可以使用Max([Enrollment]) over (Intersect([CT_ID],[Condition])) / Count([Enrollment]) over (Intersect([CT_ID],[Condition]))
Enrollment
修改强>
由于你有一些重复,有些不是......我们只是将重复项拆分成重复项的平均数。插入此计算列:
Condition, CT_ID, and Enrollment
然后使用此列代替Condition = P and CT_ID = 5127
表示您要忽略重复项的表达式,其中重复项的值为12
。
例如...... 24
的行将/^[^?]+/
而不是^
。