Google fusion表 - 处理融合表中的“group by”和“count(col_name)”函数

时间:2012-08-06 15:43:23

标签: google-maps google-fusion-tables

谢谢大家的回答: @ODI - 我的最终要求是我想触发上面的查询并首先查找相关国家并对其进行着色然后(现在不是imp)是在地图上显示此计数。 我正在尝试你提到的建议。

@ user1224571 - 谢谢。

@Eric - 实际上你发布的查询没有用。请找到以下工作代码。如果你添加group by子句它将不起作用。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="UTF-8">

<title>Fusion Tables Layer Example: Basic Fusion Tables Layer</title>

<link href="http://code.google.com/apis/fusiontables/docs/samples/style/default.css"
    rel="stylesheet" type="text/css">

<script type="text/javascript"
    src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>

<script type="text/javascript">
var map;
  function initialize() {
    map = new google.maps.Map(document.getElementById('map-canvas'), {
      center: new google.maps.LatLng(44.0718, -2.768555),
      zoom: 2,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var layer = new google.maps.FusionTablesLayer({
      query: {
          select: 'masterNarrative, (count())',
          from: '1EsjL3dUyez6R8bXlJVtrL8Zq3esRsaoxcamKoVM',
          where : "masterNarrative IN ('Pharaoh','Badr')"},
      styles: [{
          polygonOptions: {
            fillColor: '#00FF00',
            fillOpacity: 0.5
          }
        }]
        //map: map
    });
    layer.setMap(map);
  }


  google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

根据SQL reference计数语法只是count(),而不是count(column_name)。

答案 1 :(得分:0)

user1224571是正确的。

尝试:

query: {
  select: 'master_narrative_name, (count())',
  from: '1hFPiPmQilakQ4zESVCJqq9ENmeo5e_EJXy_Usy8',
  where : "master_narrative_name IN ('Pharaoh','Badr')"  GROUP BY master_narrative_name},