如何过滤 Foundry Functions 中的聚合数据?
How to filter on aggregated data in Foundry Functions?
我想知道如何在 Foundry Functions 中过滤分组数据。我已经设法对我的数据进行分组和汇总,请参见下文:
@Function()
public async grouping(lowerBound : Integer ): Promise<TwoDimensionalAggregation<string>> {
let grouping = Objects.search()
.HospitalLosAnalysis()
.groupBy(val => val['primaryHospitalName'].topValues())
.count()
//FILTER SHOULD BE HERE
return grouping
}
现在,我只想过滤计数大于参数 lowerBound
的行。问题是我无法再过滤分组 returns a TwoDimensionalAggregation
,我无法再对其进行过滤。
一些背景信息:我想在 Workshop 中创建一个图表,用户可以在其中仅查看具有大量计数的医院。他会在文本框中输入 lowerBound
参数,该函数会删除所有小于 lowerBound
.
的行
您应该能够遍历 grouping
变量。您可以随时使用旧 console.log(grouping)
检查里面的内容,然后预览。
它应该看起来像:
let newBuckets = [];
grouping.buckets.forEach(bucket => {
if (bucket.value > lowerBound) {
newBuckets = bucket
}
});
grouping.buckets = newBuckets;
别忘了在 let grouping = await Objects.search..etcetc..count()
上添加 await
假设您在这里寻找的是过滤聚合结果 - 否则,只需在聚合之前先过滤传入数据。
完成 TwoDimensionalAggregation 后,您将拥有一个打字稿数据结构,它是一个“桶”列表,其中每个桶都有一个 key
和一个 value
属性. key
可以很复杂(即,如果您按数字、日期或时间戳 属性 分组,并且键有一个 范围 ),也可以很简单,如您的情况下,关键是 primaryHospitalName
.
所以你会有这样的东西:
`grouping.buckets[0].key === "hospitalName1"`
`grouping.buckets[0].value === N`
您可以通过多种方式轻松过滤此存储桶列表:一些微不足道的事情,例如:
const filteredGrouping = {
buckets = grouping.buckets.filter(e => e.value >= lowerBound)
}
然后 return filteredGrouping
而不是 grouping
。此处可能有关于如何创建自定义聚合的相关文档:https://www.palantir.com/docs/foundry/functions/create-custom-aggregation/
我想知道如何在 Foundry Functions 中过滤分组数据。我已经设法对我的数据进行分组和汇总,请参见下文:
@Function()
public async grouping(lowerBound : Integer ): Promise<TwoDimensionalAggregation<string>> {
let grouping = Objects.search()
.HospitalLosAnalysis()
.groupBy(val => val['primaryHospitalName'].topValues())
.count()
//FILTER SHOULD BE HERE
return grouping
}
现在,我只想过滤计数大于参数 lowerBound
的行。问题是我无法再过滤分组 returns a TwoDimensionalAggregation
,我无法再对其进行过滤。
一些背景信息:我想在 Workshop 中创建一个图表,用户可以在其中仅查看具有大量计数的医院。他会在文本框中输入 lowerBound
参数,该函数会删除所有小于 lowerBound
.
您应该能够遍历 grouping
变量。您可以随时使用旧 console.log(grouping)
检查里面的内容,然后预览。
它应该看起来像:
let newBuckets = [];
grouping.buckets.forEach(bucket => {
if (bucket.value > lowerBound) {
newBuckets = bucket
}
});
grouping.buckets = newBuckets;
别忘了在 let grouping = await Objects.search..etcetc..count()
await
假设您在这里寻找的是过滤聚合结果 - 否则,只需在聚合之前先过滤传入数据。
完成 TwoDimensionalAggregation 后,您将拥有一个打字稿数据结构,它是一个“桶”列表,其中每个桶都有一个 key
和一个 value
属性. key
可以很复杂(即,如果您按数字、日期或时间戳 属性 分组,并且键有一个 范围 ),也可以很简单,如您的情况下,关键是 primaryHospitalName
.
所以你会有这样的东西:
`grouping.buckets[0].key === "hospitalName1"`
`grouping.buckets[0].value === N`
您可以通过多种方式轻松过滤此存储桶列表:一些微不足道的事情,例如:
const filteredGrouping = {
buckets = grouping.buckets.filter(e => e.value >= lowerBound)
}
然后 return filteredGrouping
而不是 grouping
。此处可能有关于如何创建自定义聚合的相关文档:https://www.palantir.com/docs/foundry/functions/create-custom-aggregation/