Tenho uma tabela em que uma das colunas pode ter entradas duplicadas e desejo condensar cada conjunto de duplicatas em uma única linha, com uma função de agregação aplicada às outras colunas. Não consigo pensar em uma explicação sensata para isso, então aqui está um exemplo de tabela de dados e tabela de resultados
+------------------------+--------------------+
| column_with_duplicates | column_to_aggregate|
+------------------------+--------------------+
| 1 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
| 3 | 5 |
| 3 | 6 |
+---------------------------------------------+
output
+------------------------+--------------------+
| column_with_duplicates | column_to_aggregate|
+------------------------+--------------------+
| 1 | 1.5 |
| 2 | 2 |
| 3 | 5 |
+---------------------------------------------+
Todas as linhas em que a média column_with_duplicates
foi calculada juntas em uma linha de resultado. O mesmo aconteceu para todos os valores de1
column_to_aggregate
column_with_duplicates
Como tive tanta dificuldade em descrever isso, não pude pesquisar efetivamente o assunto.
Parece que sua consulta precisa ser algo como:
Mais informações sobre como criar aliases (a palavra-
AS
chave).Mais informações sobre
GROUP BY
Mais informações sobre a
AVG
função com um exemplo útil que o teria servido bem.Já que você tinha uma pergunta sobre a
GROUP BY
cláusula nos comentários abaixo...Pelo que entendi, o MySQL tem algumas peculiaridades com suas
GROUP BY
regras. Apesar dessas peculiaridades, penso em umaGROUP BY
cláusula simples, como a da consulta acima, classificando o conjunto de resultados em baldes. Portanto, em nossa consulta acima, haveria um intervalo para cada valor exclusivo nacolumn_with_duplicates
coluna. Portanto, cada valor nocolumn_to_aggregate
seria descartado no balde apropriado. Depois que todas as linhas/valores são classificados em seus intervalos, uma média é obtida de todos os valores em cada intervalo individualmente .É claro que este é apenas um modelo conceitual, mas deve fornecer uma compreensão básica do papel de uma
GROUP BY
cláusula.