PostgreSQL, como agregar linhas em colunas

Neste vídeo vou mostrar como fazer uma consulta utilizando duas tabelas: Produtos e Grade de Cor e tamanho.

Vou mostrar como exibir os registros da forma tradicional utilizando o join e também de uma forma agregada, ou seja, transformando registros em linhas.

select p.codprod , p.descprod,
array_to_string( array_agg(pg.cor||' '||pg.tamanho) ,' | ') Cores_e_Tamanhos
from produto p
left join produto_grade pg on pg.produto = p.codprod
where p.codprod  > 2447
group by codprod

Criar consultas SQL estatísticas percentuais

Neste vídeo mostro como criar uma consulta SQL representando percentual de um total, exemplo:

Em um hotel temos 50% de quartos livres, 15% de quartos reservados e 35% quartos ocupados.

Ou uma consulta que nos mostre em percentual quantos produtos ATIVOS e quantos Inativos (80% produtos ativos e 20% produtos inativos), no exemplo abaixo vamos exibir percentuais de produtos ativos e inativos: Temos 2352 produtos, 289 Inativos e 2063 Ativos, mas como representar em percentuais? Ativos 87.713% e Inativos 12.287%

select count(p.codprod), p.ativo ,
cast ((count(p.codprod)/tmp.total)*100 as numeric(10,3))
from produto p , (select cast(count(codprod) as numeric(10,3)) total from produto) tmp
group by p.ativo , tmp.total

Assista o vídeo: