Grupo PostgreSQL por

Grupo PostgreSQL por
O Grupo PostgreSQL por Cláusula é um recurso usado para unir/combinar essas linhas na tabela que possuem os mesmos dados. Esta cláusula é usada principalmente para remover dados duplicados e manter a simultaneidade. Sempre que queremos calcular a soma, ou qualquer outro agregado como AVG, etc., Este grupo por cláusula é sempre usado, pois existem muitas cláusulas usadas no PostgreSQL. Mas existe uma hierarquia entre cada cláusula.

De> where> "Grupo por"> Tendo> Selecionar> Distinct> Ordem by> Limit

O trabalho de PostgreSQL está dentro de "onde" e a cláusula "ter".

Sintaxe

Selecione coluna
De Dumytable
Onde [Condições]
Grupo por FirstColumn, SecondColumn…
Ordem por FirstColumn, SecondColumn…;

Exemplo 1

Para entender o conceito do grupo por função, usamos um exemplo aqui. Na mesa de passageiros, você pode ver que os sobrenomes são os mesmos para algumas pessoas. Cada nome que é semelhante a outro forma um grupo, e seu pagamento é adicionado coletivamente contra cada mesmo nome. Isso é elaborado no exemplo abaixo.

>> selecione Lname, Sum (pagamento) do grupo de passageiros por LName;

O sobrenome do passageiro é selecionado com o uso de uma função interna 'soma' que leva a coluna 'Pagamento'. E adicione o pagamento para aquelas pessoas com o mesmo nome. Por exemplo, o salário de "Javed" e "Saad" é ​​adicionado. Considerando que para "Malik" e "Shams", é mencionado individualmente.

Da mesma forma, considere uma tabela "hospital". Queremos agrupar a cidade para a idade. Neste exemplo, uma cidade existe mais de uma vez em uma coluna. Cada cidade é agrupada com o mesmo nome da cidade. As idades de cada grupo da cidade são adicionadas e formam uma única linha.

Hospital:

>> Selecione a cidade, soma (idade) do grupo hospitalar pela cidade;

Exemplo 2

Como alternativa, se selecionarmos o sobrenome com o ID do passageiro da tabela, o resultante será uma tabela diferente. Porque quando agrupamos as duas colunas, ele exibirá o nome de cada passageiro porque o ID para cada passageiro, mesmo com um sobrenome comum, é diferente. A soma é calculada em uma coluna separada, mas o pagamento de cada passageiro é mencionado na frente de seu nome porque o agrupamento de lname não é feito aqui.

Este é um exemplo do grupo por cláusula com várias colunas. Porque quando várias colunas são selecionadas para agrupamento, o valor resultante é alterado em comparação com o grupo por uma única tabela.

>> selecione ID, lname, soma (pagamento) do grupo de passageiros por id, lname;

A partir da saída, você notará uma coisa que, primeiro, todos os que são incomuns são exibidos, e então aqueles que são os mesmos são mencionados na tabela.

Exemplo 3

Este exemplo tem uma condição de junção e um grupo por cláusula. Como 'junção' é usado, significa que usamos duas mesas aqui. Um é "item", e o outro é "ordens".

Unid:

Ordens:

Utilizamos um método de concatenação (usado para ingressar em duas cordas) para juntar os valores de duas colunas da tabela "itens" com "," e nomear a coluna coletivamente como "Descrição". É opcional; você pode levá -los separadamente. Nesta consulta, a palavra -chave "usando" identifica a coluna específica da outra tabela. O endereço da tabela de itens é comparado com a coluna de endereço da tabela "Ordens". Isso é feito fazendo uma junção entre duas mesas. Como exemplos anteriores, ambas as colunas serão selecionadas pelo grupo por cláusula.

>> Selecione o nome || ',' || categoria como descrição, endereço dos itens de ingresso interno Ordens usando (endereço) Grupo por endereço, descrição;

Você pode observar que 5 linhas serão selecionadas com o endereço de itens combinados com o endereço de pedidos. E então, a coluna de descrição será formada correspondência com a coluna de endereço.

Da mesma forma, há outro exemplo de concatenação com o fator de idade em duas mesas. Um é "passageiro" e o outro é "trabalhador". A concatenação é entre o primeiro e o sobrenome. Ambos os nomes são separados pelo espaço entre dois nomes. Tivemos uma parte da tabela de trabalhadores aqui.

Trabalhador:

A consulta funcionará para que o ponto em que o FNAME do trabalhador seja compatível com o passageiro, a idade do passageiro, seja exibido na coluna de idade.

>> Selecione fname || "|| passageiro.Lname como Full_name, passageiro.Idade do Grupo de Trabalhador de Junção do Passageiro Usando (FNAME) por Full_Name, Passageiro.ordem de idade por passageiro.idade;

Uma linha é formada. O Full_Name é criado juntando duas colunas com espaço, e o endereço é selecionado onde o nome do passageiro corresponde ao FNAME do trabalhador.

Exemplo 4

Este exemplo lida com o uso de uma função count () para contar os IDs da tabela "itens". Isso é novamente um grupo pelo ID da tabela.

>> Selecione ID, conte (id) do grupo de itens por id;

As linhas na coluna ID são divididas em grupos. Cada grupo é contado na coluna que quantas vezes ela aparece na coluna. Na tabela resultante, uma nova coluna com um nome de "contagem" é criada e os valores da contagem são escritos aqui na frente de cada grupo.

Via pgadmin

Agora, aplicamos alguns exemplos no lado do painel de PostgreSQL. Esses exemplos são diferentes em algum tipo porque formam uma linha subtotal da coluna original quando qualquer um dos itens difere dos outros, então o valor é retornado como nulo.

Considere o primeiro exemplo; Aqui, criamos um nome de coluna "All" que combinou duas colunas. Um endereço e uma categoria. A coluna 'All' conta os valores em ambas as colunas coletivamente. A coluna de endereço é agrupada como "add" e a coluna de categoria é agrupada separadamente como "gato". Como os nomes das colunas de ambas as tabelas usadas podem ser combinadas entre si. Portanto, cada coluna da respectiva tabela é acessada por um objeto específico.

A condição aplicada no comando depende do ID e do número do pedido. Onde esses números de ID e pedidos são iguais, os dados são buscados. Da mesma forma, também é adicionada uma condição adicional para o nome.

>> Selecione O.endereço, categoria, contagem (*) como "tudo", agrupamento (O.endereço) como "add", agrupamento (categoria) como "gato" dos itens i, ordens o onde eu.order_no = o.order_id e i.Endereço = Grupo 'Lahore' por Cube (O.endereço, categoria) Ordem por 1, 2;

Para a cidade de Lahore, uma categoria é selecionada. Existem 4 possibilidades. Às vezes, o brinquedo está presente, mas não o endereço. E vice versa. Mas existe um tempo em que a categoria e o endereço estão presentes.

Agora, se alterarmos a condição do nome de uma tabela e trocará a tabela com outra. "Unid.O endereço "é substituído pelo" Ordem.endereço ”, então o resultado é diferente.

Conclusão

A cláusula "Grupo PostgreSQL por" é usado para aplicar qualquer operador agregado aos dados coletivos. Este artigo usa o grupo por cláusula com função de contagem, junções e seleção e agrupamento de várias colunas. Tenho certeza de que este tutorial será o melhor meio de entendimento para os leitores.