Bom dia André!
O resultado que deseja pode ser obtido através da cláusula DISTINCT ON [1]

Dada a abstração do seu problema, recriei a tabela estabelecimento como
segue:

teste=# CREATE TABLE estabelecimento (estab_id serial, nome varchar,
destaque integer);
NOTICE: CREATE TABLE will create implicit sequence
"estabelecimento_estab_id_seq" for serial column "estabelecimento.estab_id"
CREATE TABLE


Inseri os dados que enviou no email:

teste=# INSERT INTO estabelecimento(nome, destaque)
VALUES('Estab1',1),('Estab1',1),('Estab1',0),('Estab1',0),('Estab2',0),('Estab2',0),('Estab3',0);


INSERT 0 7


teste=# SELECT * FROM estabelecimento;

 estab_id | nome | destaque

----------+--------+----------

        1 | Estab1 | 1
        2 | Estab1 | 1
        3 | Estab1 | 0
        4 | Estab1 | 0
        5 | Estab2 | 0
        6 | Estab2 | 0
        7 | Estab3 | 0
(7 rows)

teste=# SELECT DISTINCT ON (nome, destaque) * FROM estabelecimento;
 estab_id | nome | destaque
----------+--------+----------
        4 | Estab1 | 0
        1 | Estab1 | 1
        5 | Estab2 | 0
        7 | Estab3 | 0
(4 rows)

teste=# SELECT COUNT(*) FROM (SELECT DISTINCT ON (nome, destaque) * FROM
estabelecimento) AS foo;
 count
-------
     4
(1 row)

Espero que lhe seja útil.
Até Mais!

[1] http://www.postgresql.org/docs/8.0/static/queries-select-lists.html

-- 
Leandro Cavalari Soares
Analista de Sistemas / DBA
Veltrac - Tecnologia em Logística
(43) 2105-5614 / (43) 9922-8095 - Londrina / PR
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a