class_docstr: Expression renderer for the BigQuery engine.
class_docstr_tok: ["Expression","renderer","for","the","BigQuery","engine","."]
docstr: Custom rendering of group by column expressions.
  
  BigQuery requires group bys to be referenced by alias, rather than duplicating the expression from the SELECT
  
  e.g.,
    SELECT COALESCE(x, y) AS x_or_y, SUM(1)
    FROM source_table
    GROUP BY x_or_y
  
  By default we would render GROUP BY COALESCE(x, y) on that last line, and BigQuery will throw an exception
docstr_tok: ["Custom","rendering","of","group","by","column","expressions",".","BigQuery","requires","group","bys","to","be","referenced","by","alias",",","rather","than","duplicating","the","expression","from","the","SELECT","e.g.",",","SELECT","COALESCE","(","x",",","y",")","AS","x_or_y",",","SUM","(","1",")","FROM","source_table","GROUP","BY","x_or_y","By","default","we","would","render","GROUP","BY","COALESCE","(","x",",","y",")","on","that","last","line",",","and","BigQuery","will","throw","an","exception"]
code: def render_group_by_expr(
      self, group_by_column: SqlSelectColumn
  ) -> SqlExpressionRenderResult:
      """Custom rendering of group by column expressions.
  
      BigQuery requires group bys to be referenced by alias, rather than duplicating the expression from the SELECT
  
      e.g.,
        SELECT COALESCE(x, y) AS x_or_y, SUM(1)
        FROM source_table
        GROUP BY x_or_y
  
      By default we would render GROUP BY COALESCE(x, y) on that last line, and BigQuery will throw an exception
      """
      return SqlExpressionRenderResult(
          sql=group_by_column.column_alias,
          bind_parameters=group_by_column.expr.bind_parameters,
      )
  
imports: from __future__ import annotations
  from fractions import Fraction
  from typing import Collection
  from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
  from typing_extensions import override
  from metricflow.errors.errors import UnsupportedEngineFeatureError
  from metricflow.sql.render.expr_renderer import DefaultSqlExpressionRenderer, SqlExpressionRenderer, SqlExpressionRenderResult
  from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
  from metricflow.sql.sql_bind_parameters import SqlBindParameters
  from metricflow.sql.sql_exprs import SqlCastToTimestampExpression, SqlDateTruncExpression, SqlExtractExpression, SqlGenerateUuidExpression, SqlPercentileExpression, SqlPercentileFunctionType, SqlSubtractTimeIntervalExpression
  from metricflow.sql.sql_plan import SqlSelectColumn
label_desc: Use image node_id 4 for calling the BigQuerySqlExpressionRenderer obj's underlying member method code with example usage: obj.render_group_by_expr(group_by_column) and returns: SqlExpressionRenderResult