我是F#的新手,我在使用简单的第一个查询时遇到了麻烦。我有一个数据集,我想根据代码(在数据中重复)对美元金额进行分组。然后,对于每个组,我想要每组的美元金额的平均值(并最终标准差)。另外,我只想查看一个providerID,因此是'where'子句。从我的研究来看,我已经走到了这一步:
let dc = new TypedDataContext()
let query2 = query { for x in dc.MyData do
groupBy x.Code into g
where (x.ProviderId = "some number of type string")
let average = query { for n in g do
averageBy n.DollarAmt }
select (g.Key, average) }
System.Console.WriteLine(query2)
有了这个,我得到一个编译错误,上面写着“没有定义命名空间或模块'x'。” 我不明白这一点,因为当我运行只收集带有指定providerID的数据的查询时,它没有抱怨这个'x',并且我对这个更大的查询使用了与'x'相同的格式。
有什么想法吗?提前谢谢。
答案 0 :(得分:2)
来自@ kvb的评论:在groupBy
之后,您只能访问论坛g
,而不能访问各个项x
。尝试将where
放在groupBy
之前。