我目前有一个数据库,其中有些价格标签错误。
示例数据:
Product - Price - SalesDate
ProdA - 10 - 1/1/2016
ProdB - 20 - 1/2/2016
ProdA - 100 - 1/3/2016
ProdB - 20 - 1/4/2016
ProdB - 21 - 1/5/2016
ProdA - 11 - 1/6/2016
Run Code Online (Sandbox Code Playgroud)
在此数据集中,记录“ProdA - 100 - 1/3/2016”是有错误的记录。输入价格的人很可能犯了打字错误。此外,ProdA 在不同的日子可以改变它的价格,这使得这个问题变得有趣。
什么样的工具可以帮助我识别此类记录?SQL 可以帮助我检测异常数据点吗?我应该为此开始研究机器学习吗?
所以我使用mvc4 web api创建了一个控制器,其中url(Get)"/ api/things"返回以下数据:
<ArrayOfThing>
<Thing>
<Id>1</Id>
<Description>The Thing Desc</Description>
<Categories>
<Category><Id>1</Id></Category>
<Category><Id>2</Id></Category>
</Categories>
</Thing>
<Thing>
<Id>2</Id>
<Description>The Other Thing Desc</Description>
<Categories>
<Category><Id>1</Id></Category>
<Category><Id>3</Id></Category>
</Categories>
</Thing>
</ArrayOfThing>
Run Code Online (Sandbox Code Playgroud)
*注意事物和类别有很多关系
我知道如果需要一个"Thing"资源,我应该使用一个匹配以下路由url(Get)的控制器"/ api/things/{id}".
但是,如果我想获取url(Get)"/ api/things"返回的数据的子集,该怎么办?我测试了OData协议修改控制器以返回IQueryable,如果我想过滤"Id"或"描述"之类的"Thing"属性,它可以正常工作.不幸的是,当我想根据类别过滤时,我没有工作,我相信是因为Categories是一个内部数组.
那么,我该怎么做才能根据类别进行过滤?