domina o agrupamento de dados do MySQL e a classificação com grupo por
e Ordem por
MySQL's Grupo por
e Ordem por
Clauses são essenciais para a agregação e arranjo de dados. No entanto, combiná -los requer uma consideração cuidadosa para evitar resultados imprevisíveis.
lidando com colunas não agregadas no grupo por
Queries
incluindo colunas não agregadas no selecione
Lista de um grupo por
consulta pode produzir resultados inconsistentes. O MySQL normalmente seleciona o valor da primeira linha de cada grupo, que é arbitrário se os valores dentro de um grupo diferem.
soluções: subquerias e any_value ()
Essa incerteza pode ser abordada usando uma subconsulta. Ao pré-classificar dados dentro de cada grupo, a subconsulta garante a seleção de um valor consistente.
alternativamente, o any_value ()
function (disponível no mysql 5.7 e posterior) permite a recuperação de um único valor de uma coluna não agregada em cada grupo, ignorando o problema da indeterminação.
somente_full_group_by
mode
mysql 5.7.5 e versões posteriores padrão para somente_full_group_by
mode. Isso aplica que todas as colunas não agregadas na lista selecione
também devem ser incluídas no grupo por
. A violação leva a erros. any_value ()
ou funções agregadas (como sum ()
são necessárias para conformidade.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3