O histograma ajuda você a traçar a distribuição de frequência dos dados e a obter informações rapidamente. Veja como criar histograma no MySQL. Você pode usá-lo para criar distribuição de frequência no MySQL e no PostgreSQL.
Como criar histograma no MySQL?
Aqui está a consulta SQL para criar histograma no MySQL.
Digamos que você tenha a seguinte tabela vendas(data_pedido, venda)
mysql> create table sales(order_date date,sale int); mysql> 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); mysql> 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:Como importar arquivo CSV para o MySQL
Criar histograma no MySQL
Existem várias consultas do MySQL Histrogram para criar histograma no MySQL. Veremos cada um deles.
Maneira mais simples de criar histograma no MySQL
Se os bins do histograma do MySQL tiverem intervalos iguais (10-20, 20-30, 30-40, etc.), aqui está a consulta SQL para criar a distribuição de frequência no MySQL.
mysql> 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, o tamanho do compartimento do histograma é 10. Se você quiser alterar o tamanho do compartimento para 25, altere piso(venda/10 )*10 para andar(venda/25 )*25
mysql> 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.
Bônus de leitura:Como calcular a taxa de conversão no MySQL
A maneira mais flexível de criar histrogramas no MySQL
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 de histograma para MySQL
mysql> 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, você pode alterar os buckets do histograma para qualquer intervalo que desejar, eles não precisam ter intervalos uniformes. Essa consulta funciona muito bem se você tiver de 5 a 10 buckets.
Bônus de leitura:Como preencher datas ausentes no MySQL
Depois de criar a distribuição de frequência no MySQL, você pode usar uma ferramenta de gráficos para plotá-la em um gráfico de colunas. Aqui está um gráfico criado usando Ubiq.
A propósito, se você deseja criar gráficos, painéis e relatórios do banco de dados MySQL, experimente o Ubiq. Oferecemos um teste gratuito de 14 dias.