Google visualization 无效查询:在Google查询语言中选择带\u和不带\u AGG的\u

Google visualization 无效查询:在Google查询语言中选择带\u和不带\u AGG的\u,google-visualization,google-query-language,Google Visualization,Google Query Language,我试图通过计算每个值,使用google visualization API从一列数据创建一个piechart,但我一直收到以下错误消息: Invalid query: SELECT_WITH_AND_WITHOUT_AGG: C 信息 我的电子表格可以在这里找到: 我想做的是创建一个饼图,统计“您来自哪个社区”列中的唯一值,并绘制它们的相对比例 可以在此处看到该列本身: 因此,我想从这一列中创建一个如下表: 示例表 Corona 2 Sunnyside

我试图通过计算每个值,使用google visualization API从一列数据创建一个piechart,但我一直收到以下错误消息:

Invalid query: SELECT_WITH_AND_WITHOUT_AGG: C
信息

我的电子表格可以在这里找到:

我想做的是创建一个饼图,统计“您来自哪个社区”列中的唯一值,并绘制它们的相对比例

可以在此处看到该列本身:

因此,我想从这一列中创建一个如下表:

示例表

Corona                     2
Sunnyside                  3
Elmhurst                   4
等等。然后使用字符串/数字组合填充饼图

使用常规SQL,您可以按列进行选择、计数(列)分组,所以我假设类似的操作也适用于GQL

到目前为止,我已经尝试过一些查询:

查询:

'SELECT COUNT(C) GROUP BY C'
'SELECT C, COUNT(C) GROUP BY C'
'SELECT C, COUNT(C) PIVOT C
但这些都不起作用

我在控制台中还收到以下错误消息:

错误消息:

'SELECT COUNT(C) GROUP BY C'
'SELECT C, COUNT(C) GROUP BY C'
'SELECT C, COUNT(C) PIVOT C

以下是我正在使用的脚本,它与我的问题有关:

脚本

// Load the Visualization API and the controls package.
  google.charts.load('current', {'packages':['corechart', 'controls']});

  // Set a callback to run when the Google Visualization API is loaded.
  google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
        var neighborhoodChart = new google.visualization.ChartWrapper({
        'chartType'     : 'PieChart',
        'containerId'   : 'chart_div2',
        'dataSourceUrl' : 'https://docs.google.com/spreadsheets/d/1lmmpJs2Bz3EfQWExB4KXq_uJWoLlq1PMCahy6w4ipcE/gviz/tq?gid=942634171',
        'query'         : 'SELECT C, COUNT(C) GROUP BY C',
        'options'       : {
            'title'     : 'Neighborhood of Residence'
        }
    });

  neighborhoodChart.draw();
  }
<!DOCTYPE html>
<html lang="en">

<head>
<title>CDC Dashboard</title>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Bootswatch Theme -->
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/flatly/bootstrap.min.css" >

<!-- External style sheet -->
<link rel="stylesheet" type="text/css" href="styles.css">

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<!--Load the AJAX API for Google Charts-->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript"
  src='https://www.google.com/jsapi?autoload={
    "modules":[{
    "name":"visualization",
    "version":"1"
    }]
  }'></script>

<script type="text/javascript">

  // Load the Visualization API and the controls package.
  google.charts.load('current', {'packages':['corechart', 'controls']});

  // Set a callback to run when the Google Visualization API is loaded.
  google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
        var neighborhoodChart = new google.visualization.ChartWrapper({
        'chartType'     : 'PieChart',
        'containerId'   : 'chart_div2',
        'dataSourceUrl' : 'https://docs.google.com/spreadsheets/d/1lmmpJs2Bz3EfQWExB4KXq_uJWoLlq1PMCahy6w4ipcE/gviz/tq?gid=942634171',
        'query'         : 'SELECT C, COUNT(C) GROUP BY C',
        'options'       : {
            'title'     : 'Neighborhood of Residence'
        }
    });

  neighborhoodChart.draw();
  }

</script>
</head>

<body>

<!-- Navbar to be affixed at the top -->
<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
        </div>
        <div>
          <div class="collapse navbar-collapse" id="myNavbar">
            <ul class="nav navbar-nav">
              <li><a href="index.html">What We Do</a></li>
              <li><a href="serve.html">Who We Serve</a></li>
            </ul>
          </div>
        </div>
    </div>
</nav>


<div class="container-fluid">
    <div class="col-md-10 col-md-offset-1">
        <h1 class="text-center">Who We Serve</h1>

        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <hr>
            </div>
        </div>

          <h2 class="text-center">Understanding Our Clients</h2>

          <div id="dashboard_div">
              <!--Divs that will hold each control and chart-->
              <div class="row">
                <div class="col-md-6">
                    <div id="filter_div"></div>
                </div>
                <div class="col-md-6">
                    <div id="search_div"></div>
                </div>
              </div>

              <div class="row">
                <div class="col-md-6">
                    <div id="attendance_div"></div>
                </div>
                <div class="col-md-6">
                    <div id="transport_div"></div>
                </div>
              </div>

              <div id="chart_div">
              </div>

              <div id="chart_div2">
              </div>
          </div>

          <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <hr>
            </div>
          </div>

        <div id="storytime">
            <h2 class="text-center">Storytime</h2>
        </div>
    </div>
</div>
</body>

</html>
以下是用于整个页面的脚本:

整个脚本

// Load the Visualization API and the controls package.
  google.charts.load('current', {'packages':['corechart', 'controls']});

  // Set a callback to run when the Google Visualization API is loaded.
  google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
        var neighborhoodChart = new google.visualization.ChartWrapper({
        'chartType'     : 'PieChart',
        'containerId'   : 'chart_div2',
        'dataSourceUrl' : 'https://docs.google.com/spreadsheets/d/1lmmpJs2Bz3EfQWExB4KXq_uJWoLlq1PMCahy6w4ipcE/gviz/tq?gid=942634171',
        'query'         : 'SELECT C, COUNT(C) GROUP BY C',
        'options'       : {
            'title'     : 'Neighborhood of Residence'
        }
    });

  neighborhoodChart.draw();
  }
<!DOCTYPE html>
<html lang="en">

<head>
<title>CDC Dashboard</title>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Bootswatch Theme -->
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/flatly/bootstrap.min.css" >

<!-- External style sheet -->
<link rel="stylesheet" type="text/css" href="styles.css">

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<!--Load the AJAX API for Google Charts-->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript"
  src='https://www.google.com/jsapi?autoload={
    "modules":[{
    "name":"visualization",
    "version":"1"
    }]
  }'></script>

<script type="text/javascript">

  // Load the Visualization API and the controls package.
  google.charts.load('current', {'packages':['corechart', 'controls']});

  // Set a callback to run when the Google Visualization API is loaded.
  google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
        var neighborhoodChart = new google.visualization.ChartWrapper({
        'chartType'     : 'PieChart',
        'containerId'   : 'chart_div2',
        'dataSourceUrl' : 'https://docs.google.com/spreadsheets/d/1lmmpJs2Bz3EfQWExB4KXq_uJWoLlq1PMCahy6w4ipcE/gviz/tq?gid=942634171',
        'query'         : 'SELECT C, COUNT(C) GROUP BY C',
        'options'       : {
            'title'     : 'Neighborhood of Residence'
        }
    });

  neighborhoodChart.draw();
  }

</script>
</head>

<body>

<!-- Navbar to be affixed at the top -->
<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
        </div>
        <div>
          <div class="collapse navbar-collapse" id="myNavbar">
            <ul class="nav navbar-nav">
              <li><a href="index.html">What We Do</a></li>
              <li><a href="serve.html">Who We Serve</a></li>
            </ul>
          </div>
        </div>
    </div>
</nav>


<div class="container-fluid">
    <div class="col-md-10 col-md-offset-1">
        <h1 class="text-center">Who We Serve</h1>

        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <hr>
            </div>
        </div>

          <h2 class="text-center">Understanding Our Clients</h2>

          <div id="dashboard_div">
              <!--Divs that will hold each control and chart-->
              <div class="row">
                <div class="col-md-6">
                    <div id="filter_div"></div>
                </div>
                <div class="col-md-6">
                    <div id="search_div"></div>
                </div>
              </div>

              <div class="row">
                <div class="col-md-6">
                    <div id="attendance_div"></div>
                </div>
                <div class="col-md-6">
                    <div id="transport_div"></div>
                </div>
              </div>

              <div id="chart_div">
              </div>

              <div id="chart_div2">
              </div>
          </div>

          <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <hr>
            </div>
          </div>

        <div id="storytime">
            <h2 class="text-center">Storytime</h2>
        </div>
    </div>
</div>
</body>

</html>

CDC仪表板
//加载可视化API和控件包。
load('current',{'packages':['corechart','controls']});
//将回调设置为在加载Google Visualization API时运行。
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
var neighborhoodychart=new google.visualization.ChartWrapper({
'chartType':'PieChart',
“集装箱船”:“海图二部”,
“数据源URL”:”https://docs.google.com/spreadsheets/d/1lmmpJs2Bz3EfQWExB4KXq_uJWoLlq1PMCahy6w4ipcE/gviz/tq?gid=942634171',
'查询':'选择C,按C计数(C)分组',
“选项”:{
“头衔”:“住宅区”
}
});
邻里关系图.draw();
}
我们为谁服务
了解我们的客户
故事时间
可在此处查看其工作文件:

更新

Corona                     2
Sunnyside                  3
Elmhurst                   4
理想情况下,我更喜欢只依赖于更改查询本身的解决方案,因为这在语法上更清晰。在整个项目中,我将多次这样做,并且希望避免涉及额外代码行的变通方法


任何帮助都将不胜感激。

这应该有效,一定是一个bug或其他什么

“选择C,按C计数(C)组”

无论如何,您可以使用
data.visualization.data.group
手动聚合列

请参阅以下工作片段

google.charts.load('current'{
回调:图纸,
包:['controls','corechart','table']
});
函数绘图图(){
var query=new google.visualization.query('https://docs.google.com/spreadsheets/d/1lmmpJs2Bz3EfQWExB4KXq_uJWoLlq1PMCahy6w4ipcE/gviz/tq?gid=942634171');
setQuery('SELECT C');
query.send(函数(响应){
if(response.isError()){
警报('Error:'+response.getMessage()+'-'+response.getDetailedMessage());
返回;
}
var dataGroup=google.visualization.data.group(
response.getDataTable(),
[0],
[{
聚合:google.visualization.data.count,
列:0,
标签:response.getDataTable().getColumnLabel(0),
键入:“数字”
}]
);
var neighborhoodychart=new google.visualization.ChartWrapper({
图表类型:'PieChart',
集装箱船:“海图分区”,
数据表:数据组,
选项:{
身高:240,
标题:“住宅区”
}
});
邻里关系图.draw();
});
}