页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

在即席分析中可以新建计算字段,计算字段的设置项中有一个设置项“参与分组”,那么选择“自动”和“否”的时候有什么区别呢?

解析

如果选择”自动“,会依据即席查询中勾选的字段是否存在聚合操作,自动进行group by 嵌套,即:

1)其它字段有设置聚合(比如sum、count等)那么会把该计算字段拼接在外层的group by语句中分组

2)其它字段没有设置聚合,那么不会把该计算字段拼接在group by语句中分组

如果选择“否”:

1)其它字段有设置聚合(比如sum、count等),那么不会把该计算字段拼接在外层的group by语句中分组

...

       实际“参与分组”的设置项主要是针对是否需要在内嵌套查询中生成对应的group by语句。

如果选择”自动“:

1)其它字段有设置聚合(比如sum、count等)那么会把该计算字段拼接在外层的group by语句中分组,具体分析如下:

     非计算字段涉及的其他字段如果设置了聚合操作,如下图:

  Image Added

    这时候在最终的执行SQL中会拼接在外层的group by语句中分组,最终执行SQL如下:

    Image Added

2)其它字段没有设置聚合,那么不会把该计算字段拼接在group by语句中分组

Image Added

最终生成的SQL语句如下图:

Image Added

如果选择“否”:

1)其它字段有设置聚合(比如sum、count等),会生成内嵌套的group by 语句的同时也会存在外嵌套的group by 语句,具体如下:

 Image Added

Image Added

Image Added

2)其它字段没有设置聚合,那么会在生成的sql内层拼接group by语句,其中分组字段是除了该计算字段外的所有字段:

Image Added

这种主要是针对计算字段里面的表达式写上 sum(字段)+aaa这种情况,例如下面的sql

...