如果没有数据,则在Sheets Query中返回0

时间:2018-09-07 10:02:57

标签: sql google-sheets

我需要一些有关Google查询语言的建议。

我想根据日期和条件对行进行计数。但是,如果不满足条件,则应返回0。

我要实现的目标:

日期开始 05.09.2018 0 06.09.2018 3 07.09.2018 0

我得到的是

日期开始 06.09.2018 3

查询看起来像=Query(Test!$A2:P; "select P, count(B) where (B contains 'starts') group by P label count(B) 'Starts'")

P包含递增的datevalues,B包含一个事件(在这种情况下类似start)。 如何在没有包含“开始”的条目的日期上强制输出0?

要点是将所有需要的数据以升序排列在一张表中。但这只是在每天都有条目的情况下起作用。如果一天没有条目,则“开始”的结果与A列中的日期值不匹配。D列中的3则将在表的第一行中。

我需要这样:

A B C D 日期登录会话开始 05.09.2018 1 2 0 06.09.2018 3 4 3 07.09.2018 4 5 0

也许这很容易解决,但我看不到。 预先感谢!

1 个答案:

答案 0 :(得分:0)

您可以在查询之前进行一些预处理。例如:检查列B是否包含带有regexmatch的“开始”,并使用双精度一元(-)强制将布尔值设置为1和0。使用查询求和。

=Query(Arrayformula({--regexmatch(Test!$B2:B; "start")\ Test!$A2:P}); "select Col17, sum(Col1) where Col17 is not null group by Col17 label sum(Col1) 'Starts'")

更改范围以适合。