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