Grupo Postgres por hora com tempo

Grupo Postgres por hora com tempo
Um grupo Postgres por cláusula é usado para dividir as linhas obtidas da instrução SELECT para os grupos. Ao usar um grupo por cláusula, podemos uma lista curta dos dados, fazendo-os aparecer na tabela de uma só vez. Esta cláusula sempre contém um nome de coluna. Grupo Postgres por hora com tempo lida com o agrupamento dos dados, dependendo da hora do timestamp.

Sintaxe

Selecione
coluna1,
Função (coluna2)
DE
Name_of_table
Grupo por
Coluna1;

Também podemos usar mais de uma coluna no comando.

Grupo por implementação da cláusula

Para explicar o conceito de cláusula de grupo por grupo, considere a tabela abaixo, denominada cliente. Esta relação é criada para conter os salários de cada cliente.

>> selecione * do cliente;

Aplicaremos um grupo por cláusula usando uma única coluna 'salário'. Uma coisa que devo mencionar aqui é que a coluna que usamos na declaração selecionada deve ser mencionada no grupo por cláusula. Caso contrário, causará um erro, e o comando não será executado.

>> selecione salário do grupo de clientes por salário;

Você pode ver que a tabela resultante mostra que o comando agrupou as linhas que têm o mesmo salário.

Agora, aplicamos essa cláusula em duas colunas usando uma contagem de funções interna () que conta o número de linhas aplicadas pela instrução SELECT e, em seguida, o grupo por cláusula é aplicado para filtrar as linhas combinando as mesmas linhas salariais. Você pode ver que as duas colunas que estão na instrução SELECT também são usadas na cláusula de grupo por grupo.

>> Selecione Salário, Conte (Salário) do Grupo de Clientes por Salário;

Grupo por hora

Crie uma tabela para demonstrar o conceito de um grupo por cláusula em uma relação pós -gres. A tabela denominada classe_time é criada com o ID das colunas, sujeito e c_period. Tanto o ID quanto o sujeito possuem variável de tipo de dados de inteiro e varchar, e a terceira coluna contém o tipo de dados do recurso interno de tempo, pois precisamos aplicar o grupo por cláusula na tabela para buscar a parte da hora de todo o tempo declaração.

>> Crie tabela classe_time (ID inteiro, sujeito varchar (10), c_period time);

Depois que a tabela for criada, inseriremos dados nas linhas usando uma instrução inserir. Na coluna C_PERIOD, adicionamos tempo usando o formato padrão de tempo 'hh: mm: ss' que deve ser incluído em comas invertidas. Para fazer o grupo de cláusula trabalhando nessa relação, precisamos inserir dados para que algumas linhas na coluna C_period se correspondam para que essas linhas possam ser agrupadas facilmente.

>> Inserir em Class_time (id, sujeito, c_period) valores (2, 'matemática', '03:06:27'), (3, 'inglês', '11: 20: 00 '), (4,' s.estudos ', '09: 28: 55'), (5, 'arte', '11: 30: 00 '), (6,' persa ', '00: 53: 06');

6 linhas são inseridas. Veremos dados inseridos usando uma instrução SELECT.

>> selecione * de classe_time;

Exemplo 1

Para prosseguir na implementação de um grupo por cláusula por parte da hora do Timestamp, aplicaremos um comando selecionado na tabela. Nesta consulta, uma função date_trunc é usada. Esta não é uma função criada pelo usuário, mas já está presente no Postgres a ser usada como uma função interna. Será necessário a palavra -chave 'hora' porque estamos preocupados em buscar uma hora e, em segundo lugar, a coluna C_PERIOD como parâmetro. O valor resultante dessa função interna usando um comando select passará pela função Count (*). Isso contará todas as linhas resultantes e, em seguida, todas as linhas serão agrupadas.

>> Selecione Date_trunc ('hora', c_period), count (*) do grupo Class_time por 1;

Date_trunc () Função é a função truncada que é aplicada ao registro de data e hora para truncar o valor de entrada na granularidade, como segundos, minutos e horas. Portanto, de acordo com o valor resultante obtido através do comando, dois valores com as mesmas horas são agrupados e contados duas vezes.

Uma coisa deve ser observada aqui: a função truncada (hora) lida apenas com a parte da hora. Ele se concentra no valor mais esquerdo, independentemente dos minutos e os segundos usados. Se o valor da hora for o mesmo em mais de um valor, a cláusula de grupo criará um grupo deles. Por exemplo, 11:20:00 e 11:30:00. Além disso, a coluna de date_trunc aparar a parte de hora do registro de data e hora e exibir a parte da hora apenas enquanto o minuto e o segundo é '00'. Porque ao fazer isso, o agrupamento só pode ser feito.

Exemplo 2

Este exemplo lida com o uso de um grupo por cláusula ao longo da própria função date_trunc (). Uma nova coluna é criada para exibir as linhas resultantes com a coluna de contagem que contará os IDs, não todas as linhas. Em comparação com o último exemplo, o sinal de asterisco é substituído pelo ID na função de contagem.

>> Selecione Date_trunc ('hora', c_period) como time_table, count (id) como contagem do grupo de class_time por date_trunc ('hora', c_period);

Os valores resultantes são os mesmos. A função trunc truncou a parte da hora do valor do tempo, e outra parte é declarada como zero. Dessa forma, o agrupamento por hora é declarado. O PostgreSQL obtém o horário atual do sistema em que você configurou o banco de dados PostGresql.

Exemplo 3

Este exemplo não contém a função trunc_date (). Agora vamos buscar horas a partir do momento usando uma função de extrato. Extract () funções funcionam como o trunc_date na extração da parte relevante, tendo a hora e a coluna alvo como um parâmetro. Este comando é diferente em trabalhar e mostrar resultados em aspectos do fornecimento apenas de valor de horas. Ele remove a parte de atas e segundos, ao contrário do recurso trunc_date. Use o comando select para selecionar ID e sujeito com uma nova coluna que contém os resultados da função de extrato.

>> Selecione ID, sujeito, extrato (hora de c_period) como hora de classe_time;

Você pode observar que cada linha é exibida com as horas de cada vez na respectiva linha. Aqui não usamos o grupo por cláusula para elaborar o funcionamento de uma função de extrato ().

Ao adicionar um grupo por cláusula usando 1, obteremos os seguintes resultados.

>> Selecione Extract (hora de c_period) como hora do grupo de classe_time por 1;

Como não usamos nenhuma coluna no comando select, apenas a coluna de hora será exibida. Isso conterá as horas no formulário agrupado agora. 11 e 9 são exibidos uma vez para mostrar o formulário agrupado.

Exemplo 4

Este exemplo lida com o uso de duas colunas na instrução SELECT. Um é o c_period, para exibir a hora, e o outro é recentemente criado como uma hora para mostrar apenas as horas. O grupo por cláusula também é aplicado ao c_period e à função de extrato.

>> Selecione _period, Extract (hora de C_period) como hora do grupo Class_time por Extract (hora de C_period), c_period;

Conclusão

O artigo 'Postgres Group por hora com tempo' contém as informações básicas sobre o grupo por cláusula. Para implementar o grupo por cláusula com hora, precisamos usar o tipo de dados de tempo em nossos exemplos. Este artigo foi implementado no banco de dados PostGresql PSQL Shell instalado no Windows 10.