1

我正在尝试在我的电子表格中使用 Google 图表查询来计算特定人员在给定日期的表单回复数。

我对 Google Charts 查询语言非常陌生(大约一个小时前我才开始尝试弄清楚),但我知道 SQL,所以我认为它不会太难。

无论如何,这就是我的查询现在的样子:

=QUERY('Form Responses'!A2:F100, "select count(*) where name = 'Ajedi32' and date timestamp = date '2013-11-19'", {"timestamp", "name", "done", "todo", "blocker", "comment"})

这是我得到的错误:

错误:无效查询:查询解析错误:在第 1 行第 14 列遇到“”*“”*“”。期待以下之一:“min”...“max”...“avg”...“count " ... "sum" ... "no_values" ... "no_format" ... "is" ... "null" ... "year" ... "month" ... "day" 。 ..“小时”...“分钟”...“秒”...“毫秒”...“与”...“包含”...“开始”...“结束”... “匹配”...“喜欢”...“现在”...“dateDiff”...“季度”...“下限”...“上限”...“dayOfWeek”...“toDate “…………

我不明白。为什么它会期望一个函数名而不是*

4

2 回答 2

1

我认为问题很可能count(*)不是 Query 语言中的有效构造。尝试使用列名而不是*.

[编辑 - 答案与不同的 API 相关;下面的新答案]

在阅读了其他用户的一些问题(link1link2、[link3(Google 电子表格查询错误 - 列不存在))后,QUERY 函数似乎不支持使用列名。您可以按字母引用列:

=QUERY($A$1:$C$10, 'select A, B, C');

或按选定范围内的列索引:

=QUERY($A$1:$C$10, 'select col1, col2, col3');

试试看,看看按字母或索引寻址你的列是否有效。

于 2013-11-19T18:16:32.517 回答
0

最终,我最终通过使用过滤器函数完全避免了查询函数:

=COUNT(FILTER('Form Responses'!$A$1:$F$100; DATEVALUE('Form Responses'!$A1:$A100)=DATEVALUE('2013-11-19'); 'Form Responses'!$B1:$B100='Ajedi32'))

扩展可读性:

=COUNT(
  FILTER(
    'Form Responses'!$A$1:$F$100;
    DATEVALUE('Form Responses'!$A1:$A100)=DATEVALUE('2013-11-19');
    'Form Responses'!$B1:$B100='Ajedi32'
  )
)

(如果有人仍然想尝试回答我原来的问题,请随意。)

于 2013-11-19T21:03:42.723 回答