Os histogramas ajudam você a visualizar a distribuição de frequência na análise de dados e relatórios e obter insights rapidamente. Veja como criar histograma no PostgreSQL. Veremos algumas maneiras diferentes de obter distribuição de frequência no PostgreSQL.
Como criar histograma no PostgreSQL
Aqui estão os passos para criar histograma no PostgreSQL.
Digamos que você tenha a seguinte tabela vendas(data_pedido, venda)
postgres=# create table sales(order_date date,sale int); postgres=# insert into sales values('2020-04-01',210), ('2020-04-02',125),('2020-04-03',150),('2020-04-04',230), ('2020-04-05',200),('2020-04-10',220),('2020-04-06',250), ('2020-04-07',215),('2020-04-08',300),('2020-04-09',250); postgres=# select * from sales; order_date | sale ------------+------ 2020-04-01 | 210 2020-04-02 | 125 2020-04-03 | 150 2020-04-04 | 230 2020-04-05 | 200 2020-04-10 | 220 2020-04-06 | 250 2020-04-07 | 215 2020-04-08 | 300 2020-04-09 | 250
Bônus de leitura:Criar usuário no PostgreSQL
Criar histograma no PostgreSQL
Existem várias consultas de histograma do PostgreSQL para criar histograma no PostgreSQL. Veremos cada um deles.
Maneira mais simples de criar Histograma no PostgreSQL
Se você quiser que os compartimentos do histograma do PostgreSQL tenham intervalos iguais (10-20, 20-30, 30-40 etc.), aqui está a consulta SQL para criar a distribuição de frequência no PostgreSQL.
postgres=# select floor(sale/10)*10 as bin_floor, count(*) from sales group by 1 order by 1; +-----------+----------+ | bin_floor | count(*) | +-----------+----------+ | 120 | 1 | | 150 | 1 | | 200 | 1 | | 210 | 2 | | 220 | 1 | | 230 | 1 | | 250 | 2 | | 300 | 1 | +-----------+----------+
Na consulta acima, calculamos o número do compartimento dividindo cada valor de venda pelo tamanho do compartimento do histograma, ou seja, 10. Se você quiser alterar o tamanho do compartimento para 25, altere piso(venda/10 )*10 para andar(venda/25 )*25
Bônus de leitura:PostgreSQL DROP VIEW
postgres=# select floor(sale/25)*25 as bin_floor, count(*) from sales group by 1 order by 1; +-----------+----------+ | bin_floor | count(*) | +-----------+----------+ | 125 | 1 | | 150 | 1 | | 200 | 4 | | 225 | 1 | | 250 | 2 | | 300 | 1 | +-----------+----------+
A vantagem do método acima é que ele altera automaticamente os compartimentos com base na adição/exclusão/modificação de dados. Ele também cria novos compartimentos para novos dados e/ou remove compartimentos caso sua contagem se torne 0. Assim, permite criar histogramas dinamicamente no PostgreSQL.
Leitura Bônus:PostgreSQL Criar Índice
A maneira mais flexível de criar histrogramas no PostgreSQL
Se você já conhece os compartimentos do histograma a serem criados ou se os tamanhos dos compartimentos do histograma são diferentes, você pode criar a distribuição de frequência usando a instrução CASE. Aqui está a consulta do histograma para o PostgreSQL
postgresql=# select '100-150' as TotalRange,count(sale) as Count from sales where sale between 100 and 150 union ( select '150-200' as TotalRange,count(sale) as Count from sales where sale between 150 and 200) union ( select '200-225' as TotalRange,count(sale) as Count from sales where sale between 200 and 225) union ( select '225-250' as TotalRange,count(sale) as Count from sales where sale between 225 and 250); +------------+-------+ | TotalRange | Count | +------------+-------+ | 100-150 | 2 | | 150-200 | 2 | | 200-225 | 4 | | 225-250 | 3 | +------------+-------+
Nesta consulta, atribuímos um intervalo para cada valor de venda usando a instrução case. Você pode alterar os buckets do histograma para qualquer intervalo que desejar, eles não precisam ter intervalos uniformes.
Esta consulta tem 2 vantagens:
- Você pode alterar o nome do bucket para o que quiser. Por exemplo, em vez de exibir "100-150", você pode exibi-lo como "entre 100 e 150"
- Você pode ter um tamanho de bucket não uniforme. Por exemplo, você pode ter um bucket de 100 a 150 com um tamanho de bucket de 50 e outro bucket de 150 a 250 com um tamanho de bucket de 100.
Dependendo de sua necessidade, você pode escolher qualquer um dos métodos acima para criar um histograma no PostgreSQL.
O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!