Re: [problemas con consulta, obtener el maximo y su rut asociado]

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Milton Galo Patricio <minoztro(at)gmail(dot)com>
Cc: Jaime Casanova <systemguards(at)gmail(dot)com>, Postgres Español <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [problemas con consulta, obtener el maximo y su rut asociado]
Date: 2006-08-15 13:46:24
Message-ID: 20060815134624.GB13976@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Milton Galo Patricio escribió:

> despues de un momento de felicidad me di cuenta de algo...que pasa si tengo
> dos personas que han publicado la misma cantidad de noticias y justamente
> son los que más han publicado??, espero algun comentario, atentamente,

Muy bien pensado ... lamentablemente no es simple resolver este
problema. En SQL (el estandar) esta definido un elemento que llaman
"windowing functions" que _creo_ que te permite hacer esto de manera
sencilla.

En el intertanto no se si hay alguna otra manera inteligente de
tratarlo. Lo que podrias intentar es traer varios valores, mas de uno,
digamos unos cuatro o cinco (mas de los que tu esperas que tengan el
valor maximo); y descartar en la aplicacion (!!) aquellos que no cumplan
el maximo. Si todos ellos cumplen el maximo, entonces repetir la
consulta, aumentando el numero que traes. (Si encuentras que estas
usando a menudo eso de repetir la consulta, aumentas el numero que traes
inicialmente, de manera que una subsiguiente ejecucion no tenga que
hacer esto otra vez). Es posible que puedas jugar con LIMIT/OFFSET y
una clausula ORDER BY que sea no ambigua (es decir, ademas de ordenar
segun el total, debes ordenar segun un campo unico, como el ID o RUT)

Si quieres buscar una solucion inteligente, busca el libro "SQL for
Smarties" de Joe Celko. Estoy casi seguro que ahi explica como hacer
esto correctamente (sin recurrir a windowing functions).

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-08-15 13:51:59 Re: Foreing key
Previous Message listapostgres 2006-08-15 07:47:21 datestyle