我正在尝试在电子表格中使用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”......“是”......“null”......“年”......“月”......“日“......”小时“......”分钟“...”第二个“...”毫秒“......”与“...”包含“...”开始“...”结束“ ......“匹配”......“喜欢”......“现在”......“dateDiff”......“季度”......“低”......“上部”...“dayOfWeek”.. “toDate”...... ......
我不明白。为什么期望函数名而不是*
?
答案 0 :(得分:1)
我认为问题可能是 count(*)
不是Query语言中的有效构造。请尝试使用列名而不是*
。
[编辑 - 答案与不同的API有关;下面的新答案]
在阅读了其他用户(link1,link2,[link3(Google spreadsheet Query Error - column doesn't exist))的一些问题后,好像QUERY函数不支持使用列名。您可以按字母引用列:
=QUERY($A$1:$C$10, 'select A, B, C');
或所选范围内的列索引:
=QUERY($A$1:$C$10, 'select col1, col2, col3');
尝试一下,看看是按字母或索引查找列。
答案 1 :(得分: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'
)
)
(如果有人还想回答我原来的问题,请随意。)