multiple - sql group by sum




Usando o grupo por em várias colunas (2)

A cláusula GROUP BY é usada em conjunto com as funções agregadas para agrupar o conjunto de resultados em uma ou mais colunas. por exemplo:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

Lembre-se desta ordem:

1) SELECT (é usado para selecionar dados de um banco de dados)

2) FROM (cláusula é usada para listar as tabelas)

3) WHERE (cláusula é usada para filtrar registros)

4) GROUP BY (cláusula pode ser usada em uma instrução SELECT para coletar dados em vários registros e agrupar os resultados por uma ou mais colunas)

5) HAVING (cláusula é usada em combinação com a cláusula GROUP BY para restringir os grupos de linhas retornadas apenas àquelas cuja condição é TRUE)

6) ORDER BY (palavra-chave é usada para classificar o conjunto de resultados)

Você pode usar tudo isso se estiver usando funções agregadas, e essa é a ordem em que elas devem ser definidas, caso contrário, você poderá obter um erro.

Funções agregadas são:

MIN retorna o menor valor em uma determinada coluna

SUM retorna a soma dos valores numéricos em uma determinada coluna

O AVG retorna o valor médio de uma determinada coluna

COUNT retorna o número total de valores em uma determinada coluna

COUNT (*) retorna o número de linhas em uma tabela

Eu entendo o ponto de GROUP BY x

Mas como GROUP BY x, y funciona e o que isso significa?


Group By X significa colocar todos aqueles com o mesmo valor para X no grupo .

Group By X, Y significa colocar todos aqueles com os mesmos valores para X e Y em um grupo .

Para ilustrar usando um exemplo, digamos que temos a seguinte tabela, para fazer com quem está participando de um assunto em uma universidade:

Table: Subject_Selection

Subject   Semester   Attendee
---------------------------------
ITB001    1          John
ITB001    1          Bob
ITB001    1          Mickey
ITB001    2          Jenny
ITB001    2          James
MKB114    1          John
MKB114    1          Erica

Quando você usa um group by apenas na coluna de assunto; dizer:

select Subject, Count(*)
from Subject_Selection
group by Subject

Você terá algo como:

Subject    Count
------------------------------
ITB001     5
MKB114     2

... porque existem 5 entradas para o ITB001 e 2 para o MKB114

Se fôssemos group by duas colunas:

select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester

nós conseguiríamos isso:

Subject    Semester   Count
------------------------------
ITB001     1          3
ITB001     2          2
MKB114     1          2

Isso porque, quando agrupamos por duas colunas, ele está dizendo "Agrupá-los para que todos os que tenham o mesmo Assunto e Semestre estejam no mesmo grupo e, em seguida, calculem todas as funções agregadas (Contagem, Soma, Média, etc.) ) para cada um desses grupos " . Neste exemplo, isso é demonstrado pelo fato de que, quando contamos, há três pessoas fazendo o ITB001 no semestre 1, e duas fazendo no segundo semestre. Ambas as pessoas que estão fazendo o MKB114 estão no primeiro semestre, então não há linha para o semestre 2 (nenhum dado se encaixa no grupo "MKB114, Semestre 2")

Espero que isso faça sentido.





group-by