Marcelo, repare que nem a sua e nem a minha solução funcionam :) 

Culpa da pressa... 

Veja que a linha " 2010 | 1 | 1836" simplesmente não existe na tabela original. 

Fiz uma solução mais completa, veja se atende : 

select t1.ano, t1.mes, t1.codfun 
from t1 
join ( 
select min( ((ano::integer * 100) + mes::integer) ) as anomes, codfun 
from t1 
group by 
codfun 
) t2 on t1.codfun=t2.codfun 
and ((t1.ano::integer * 100) + t1.mes::integer) = t2.anomes 

Solução: 
2010;4 ;1593 
2010;2 ;1836 
2010;4 ;2398 



----- Mensagem original ----- 



select * from t1; 
ano | mes | codfun 
------+-----+-------- 
2010 | 4 | 1593 
2010 | 4 | 1836 
2010 | 2 | 1836 
2010 | 4 | 2398 
2011 | 1 | 1836 
2012 | 3 | 1836 
(6 rows) 

select min(ano),min(mes),codfun from t1 group by codfun; 
min | min | codfun 
------+-----+-------- 
2010 | 4 | 2398 
2010 | 4 | 1593 
2010 | 1 | 1836 
(3 rows) 

__ 

[]´s, André Volpato 
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a