rsrsrs, na hora de escrever o select inverti o max e min, mas como aprendemos 
lá no pré rsrsrs, a “ordem dos fatores não altera o produto”, mas no sistema 
está o min primeiro por questão didática 
E valeu por me confirmar que cada coluna é vista individualmente...
Mas confeço que já tive problemas por esse comportamente individual de 
coluna... vou dar uma exemplo:

Tenho os seguintes registros:

Data       Hora
10/04/2012 13:00:00
10/04/2012 14:00:00
11/04/2012 12:00:00
11/04/2012 12:30:00

Vamos supor que eu precise pegar a maior data e nesta data a maior hora, 
se eu usar o Max(Data) e Max(Hora) ele vai me trazer a data 11/04/2012 e a hora 
14:00:00
o que estaria errado, pois eu precisaria da maior hora do dia 11/04/2012
mesmo com o group by no campo data ele ainda traz a hora errada, precisei fazer 
assim:

select max(data) as mdata, hora 
from tabela
group by hora
order by hora desc 
limit 1



From: Matheus de Oliveira 
Sent: Wednesday, April 11, 2012 10:59 AM
To: Comunidade PostgreSQL Brasileira 
Cc: Marcelo Silva (IG) 
Subject: Re: [pgbr-geral] Duvida em MAX() x MIN() no mesmo SELECT

  select max(data_cad) as data_ini, min(data_cad) as data_min


Não tá ao contrário, não seria algo do tipo:


select min(data_cad) as data_ini, max(data_cad) as data_fim 

 
  Ele trata cada coluna individualmente nesse caso?


Sim, você pensou certo, nesse e em qualquer caso, ele vai varrer todas as 
linhas e cada função de agregação só pega o que interessa a ela, uma não toma 
conhecimento da existência da outra.


On Wed, Apr 11, 2012 at 10:54 AM, Guimarães Faria Corcete DUTRA, Leandro 
<[email protected]> wrote:

  2012/4/11 Marcelo Silva (IG) <[email protected]>
  >

  > Bem, a intenção não é agrupar, pro isso não coloquei nenhuma outra coluna.


  Mas M(AX|IN) são funções de agregação, não?



  > A idéia é justamente pegar a maior e a menor data.


  Então ele fez exatamente o esperado, não?



  > Imagino que neste caso não seja necessário o Group By


  Até estranhei, para mim o uso de função de agregação exigia o GROUP BY.


Se você não usa o GROUP BY, ele agrupa tudo (retornando apenas uma tupla), 
então não exige.

Mas se você quiser adicionar outras colunas, vai ter que colocar o GROUP BY 
(mesmo que o resultado também dê só uma tupla). Você pode até mesmo usar um 
join. 




Atenciosamente,
--
Matheus de Oliveira

Bacharelado em Ciências de Computação
Laboratório de Computação de Alto Desempenho - LCAD
Instituto de Ciências Matemáticas e de Computação - ICMC
Universidade de São Paulo - USP



<<wlEmoticon-smile[1].png>>

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a