Partially incorrect results from Google Fusion Tab

2019-06-13 20:39发布

Learning Google FusionTables, so possibly making a very beginner mistake. I get correct results when querying Google Fusion Tables via the ChartTools API but not via the Ajax API. Strangely, it gives correct results for part of the query, just not all of it. Am I making a mistake?

Chart Tools API works: Querying Google FusionTable via the Chart Tools API seems to work fine, albeit with a 500 row limit. For instance, this query: SELECT ETHUN, COUNT() FROM 1Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI GROUP BY ETHUN

Using the Google Chart Tools API, the URL is http://www.google.com/fusiontables/gvizdata?tq=SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&tqx=reqId%3A0, which returns a JSON function:

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}]},
        ]
     }
 })

In particular, note the values {1,2,-9} as the values for ETHUN.

New FusionTables API doesnt work: On the other hand, making the same query via the Ajax API returns correct frequencies but NaN for the values themselves that the frequencies describe: https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&key=AIzaSyBT_ZCriV-Tm78KsJiQp6KKhjDwMhP0tYM

Which returns this JSON:

{
 "kind": "fusiontables#sqlresponse",
 "columns": [ "ETHUN",  "count()"  ],
 "rows": [
  [  NaN,  "3308" ]
  [  NaN, "18702" ],
  [  NaN, "10768" ],
 ]
}

Why might it be giving me NaN's instead of {1, 2, -9} ?

Update: I now believe this issue is unique to the new Fusion Tables SQL, question slightly edited.

(Here's the link to the example Fusion Table)

Fusion Tables SQL API (now deprecated) also works

Strangely this link also works fine, https://www.google.com/fusiontables/api/query?sql=SELECT%20ETHUN,%20COUNT%28%29%20FROM%204579147%20GROUP%20BY%20ETHUN&alt=json-in-script&jsonCallback=onResponse and returns the following JSONP response with yet another format:

onResponse({"table":{"cols":["ETHUN","count()"],"rows":[["2",18702],["-9",10768],["1",3308]]}})

1条回答
劫难
2楼-- · 2019-06-13 20:45

This appears to be a bug with Google Fusion Tables API v1.0. This error is specific to numeric fields. Ajax is able to correctly query String fields just fine. Just this dataset has mostly numeric fields.

查看更多
登录 后发表回答