学习Google FusionTables,因此可能会犯一个初学者的错误。通过ChartTools API查询Google Fusion Tables但未通过Ajax API查询时,我得到了正确的结果。奇怪的是,它为部分查询提供了正确的结果,而不是全部。我犯了错误吗?
图表工具API有效:
通过Chart Tools API查询Google FusionTable似乎工作正常,尽管有500行限制。例如,此查询:SELECT ETHUN, COUNT() FROM 1Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI GROUP BY ETHUN
使用Google Chart Tools API,网址为http://www.google.com/fusiontables/gvizdata?tq=SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&tqx=reqId%3A0,返回JSON函数:
google.visualization.Query.setResponse({
version:'0.5',
reqId:'0',status:'ok',
table:{
p:{totalrows:3},
cols:[
{id:'col6',label:'ETHUN',type:'number'},
{id:'#agg#COUNT',label:'count()',type:'number'}
],
rows:[
{c:[{v:1.0},{v:3308.0}]}
{c:[{v:2.0},{v:18702.0}]},
{c:[{v:-9.0},{v:10768.0}]},
]
}
})
请特别注意值{1,2,-9}作为ETHUN的值。
新的FusionTables API不起作用 另一方面,通过Ajax API进行相同的查询返回正确的频率,但是NaN表示频率描述的值本身: https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&key=AIzaSyBT_ZCriV-Tm78KsJiQp6KKhjDwMhP0tYM
返回此JSON:
{
"kind": "fusiontables#sqlresponse",
"columns": [ "ETHUN", "count()" ],
"rows": [
[ NaN, "3308" ]
[ NaN, "18702" ],
[ NaN, "10768" ],
]
}
为什么它会给我NaN而不是{1,2,-9}?
更新 我现在相信这个问题对于新的Fusion Tables SQL来说是独一无二的,这个问题稍有编辑。
(这是指向example Fusion Table)的链接
Fusion Tables SQL API(现已弃用)也可以使用
奇怪的是,这个链接也可以正常工作https://www.google.com/fusiontables/api/query?sql=SELECT%20ETHUN,%20COUNT%28%29%20FROM%204579147%20GROUP%20BY%20ETHUN&alt=json-in-script&jsonCallback=onResponse并以另一种格式返回以下JSONP响应:
onResponse({"table":{"cols":["ETHUN","count()"],"rows":[["2",18702],["-9",10768],["1",3308]]}})
答案 0 :(得分:0)
这似乎是Google Fusion Tables API v1.0的错误。此错误特定于数字字段。 Ajax能够正确查询String字段。只是这个数据集主要有数字字段。