2012/12/11 Eduardo Az - EMBRASIS <[email protected]>
>
> pessoal, estou com uma dúvida e deve ser muito besta, mas vamos lá:
>
> TENHO UMA TABELA :
>
> CLIENTES
> -NOME
> -BAIRRO
>
> quero um select que me retorne o bairro e quanto % de cada bairro no
total do cadastro, tipo:
>
> TATUAPÉ 50%
> MOÓCA 30%
> LAPA 20%
>
> estou usando o percent_rank, mas nãop tenho sucesso.
> Está correto usar ele?
>

E ai Eduardo,

Veja se isso ajuda:

fabrizio=# create table clientes (

 fabrizio(#   nome varchar,
fabrizio(#   bairro varchar
fabrizio(# );
CREATE TABLE
fabrizio=# insert into clientes (nome, bairro) values ('Fabrízio',
'Harmonia'), ('Robson', 'Harmonia'), ('Daniel', 'Niterói'), ('Sandra',
'Niterói'), ('Deise', 'Niterói'), ('Gilsandro', 'Rio Branco'), ('Flaviane',
'Rio Branco'), ('Edson', 'Harmonia'), ('Sueli', 'Harmonia'), ('Fabiano',
'Centro');
INSERT 0 10
fabrizio=# with bairros(bairro, count) as (
  select bairro, count(*)
    from clientes
   group by bairro
)
select bairro, count, (count * 100.0 / (sum(count) over ()))::numeric(4,1)
as "%"
  from bairros
 order by 2 desc;
   bairro   | count |  %
------------+-------+------
 Harmonia   |     4 | 40.0
 Niterói    |     3 | 30.0
 Rio Branco |     2 | 20.0
 Centro     |     1 | 10.0
(4 rows)

Att,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a