Socrata:如何将$ order子句添加到查询中?

时间:2015-03-08 06:27:43

标签: android sorting socrata

我正在为一个班级开设一个小型Android项目。 在其中,我正在建立一个针对洛杉矶开放式Socrata数据集的查询。

这是网址: https://data.lacity.org/resource/yv23-pmwf.json?%24select=zip_code%2Cissue_date%2Caddress_start%2Caddress_end%2Cstreet_name%2Cstreet_suffix%2Cwork_description%2Cvaluation&%24where=issue_date%3E%3D%272015-02-25T00%3A00%3A00%27%20AND%20zip_code%3D90291

这很有效。

但是我无法弄清楚增加的是“命令”结果。 Socrata文件说明了这一点:

~~~~~~~~~~~~~~~~~~~~~~~~~~ $ order参数~~~~~~~~~~~~~~~~~ ~~~

$ order参数使用指定列中的值确定结果的排序方式,类似于SQL ORDER BY。排序可以按升序或降序执行,默认值为升序,但您也可以使用DESC撤消订单。

例如,按大小按降序对地震进行排序:

https://soda.demo.socrata.com/resource/4tka-6guv?$ order = magnitude DESC

我们可以通过用ASC替换DESC或者简单地省略它来按升序对它们进行排序。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~

我尝试了& $,$&,just&,只是$的各种组合来追加 “order = issue_date DESC”到URL的查询。

简单'&'结果是 “code”:“query.compiler.malformed”,   “错误”:是的,   “message”:“错误,无法解析SoQL查询.......” 以及网址其余部分的完整列表

'& $'似乎要好一些。我只收到错误: “错误”:是的,   “message”:“无法识别的参数[$ order = issue_date DESC]”

我还在issue_date和DESC之间尝试过'+',或者不包括'DESC',但我只是得到'无法识别的参数[无论我输入什么]

Socrata技术作者的注意事项:您的示例都没有演示使用多个参数构建实际查询。有些人不会受伤。

另外,它是无用的:我在那里构建了一个多参数查询,它做了我想要的(但在他们的样本集上),除了它在$ select之前将$ order放在前面,并且显示结果URL,如下所示:

https://soda.demo.socrata.com/resource/4tka-6guv?$顺序=大小

DESC& $ select = location,magnitude

所以我不知道$ order的DESC方向是如何附加到该子句的。玩了一段时间,但从未想过它。

那些熟悉这个SoQL的人?

我找到了Socrata的Android API库,但我仍然是Android和Socrata的新手,并且认为我会把它关闭一段时间。只需要这一个查询。也许我应该花费最后两个小时试图弄明白而不是这个。

感谢。

1 个答案:

答案 0 :(得分:0)

我不确定您为什么遇到$ order子句的问题。如果我接受您的查询(为了便于阅读而解码),我只需将订单子句附加为& $ order = issue_date DESC。所以这里是完整的查询,对我来说很好:

https://data.lacity.org/resource/yv23-pmwf.json?$select=zip_code,issue_date,address_start,address_end,street_name,street_suffix,work_description,valuation&$where=issue_date>='2015-02-25T00:00:00' AND zip_code=90291&$order=issue_date DESC

也许你错误地对URL进行了编码?另外需要注意的是,您可以将$ order子句作为标准URL参数附加到查询字符串中的任何位置。