GROUP BY和LIKE的奇怪行为?

时间:2017-11-23 21:49:10

标签: sql google-bigquery

以下是我的数据的简化示例。如您所见 - 这里只有两行

所以我跑到下面突然得到意想不到的结果

我的期望是:

  

为什么我的结果出错?

而且,当我跑到下面时 - 我只得到一排。为什么第id=1行的第二行没有显示?

  

是否存在BigQuery错误或什么?

免责声明我几次离线(StackOverflow之外)几次被问到这类问题,最近在SO(I can't understand this BigQuery magic. find string with LIKE)上看到了同样的问题,但遗憾的是删除所以我决定在我自己发布

1 个答案:

答案 0 :(得分:2)

GROUP BY未对这两行进行分组的原因是这些行中的str字段实际上是不同的。不幸的是,BigQuery Web UI在Table模式下会折叠结果面板中的空格。要查看实际/原始值,您可以切换到JSON mode,如下所示

同样的原因是使用LIKE

的意外结果

至于如何处理这个?这取决于!
例如,您可以通过自己抑制空格来规范化字符串,如下所示

P.S。在我们的内部工具中 - 我们只修复了抑制空格的问题,只需显示所有空格: