> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de sessão de group_by_*

> Configurações de sessão do ClickHouse no grupo gerado por group_by_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Essas configurações estão disponíveis em [system.settings](/docs/pt-BR/reference/system-tables/settings) e são geradas automaticamente a partir da [fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="group_by_overflow_mode">
  ## group\_by\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowModeGroupBy" default_value="throw" />

Define o que acontece quando o número de chaves únicas para agregação excede o limite:

* `throw`: gera uma exceção
* `break`: interrompe a execução da consulta e retorna o resultado parcial
* `any`: continua a agregação para as chaves que entraram no conjunto, mas não adiciona novas chaves ao conjunto.

Usar o valor `any` permite executar uma aproximação de GROUP BY. A qualidade dessa
aproximação depende da natureza estatística dos dados.

<div id="group_by_two_level_threshold">
  ## group\_by\_two\_level\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

Número de chaves a partir do qual uma agregação em dois níveis é iniciada. 0 - o limiar não está definido.

<div id="group_by_two_level_threshold_bytes">
  ## group\_by\_two\_level\_threshold\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="50000000" />

A partir de qual tamanho, em bytes, do estado de agregação, passa-se a usar a agregação em dois níveis. 0 - o limiar não está definido. A agregação em dois níveis é usada quando pelo menos um dos limiares é atingido.

<div id="group_by_use_nulls">
  ## group\_by\_use\_nulls
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Altera a forma como a [cláusula GROUP BY](/docs/pt-BR/reference/statements/select/group-by) trata os tipos das chaves de agregação.
Quando os especificadores `ROLLUP`, `CUBE` ou `GROUPING SETS` são usados, algumas chaves de agregação podem não ser usadas na produção de determinadas linhas de resultado.
As colunas dessas chaves são preenchidas com o valor padrão ou com `NULL` nas linhas correspondentes, dependendo dessa configuração.

Valores possíveis:

* 0 — O valor padrão do tipo da chave de agregação é usado para preencher valores ausentes.
* 1 — O ClickHouse executa `GROUP BY` da mesma forma que o padrão SQL define. Os tipos das chaves de agregação são convertidos para [Nullable](/docs/pt-BR/reference/data-types/nullable). As colunas das chaves de agregação correspondentes são preenchidas com [NULL](/docs/pt-BR/reference/syntax#null) nas linhas em que elas não foram usadas.

Veja também:

* [cláusula GROUP BY](/docs/pt-BR/reference/statements/select/group-by)
