--------------------------------------------------
From: "Alejandro D. Burne" <[EMAIL PROTECTED]>
Sent: Sunday, September 21, 2008 6:01 AM
To: "Raúl Andrés Duque Murillo" <[EMAIL PROTECTED]>
Cc: "PostgreEs" <[email protected]>
Subject: Re: [pgsql-es-ayuda] Obtener los 3 valores mas altos por grupo de una serie de registros

--------------------------------------------------
From: "Alejandro D. Burne" <[EMAIL PROTECTED]>
Sent: Saturday, September 20, 2008 6:35 PM
To: "PostgreEs" <[email protected]>
Subject: [pgsql-es-ayuda] Obtener los 3 valores mas altos por grupo de una
serie de registros

Alguien tiene idea de como armar una consulta sql (si es que se puede)
para obtener los 3 valores máximos y agrupandolos por una determinada
columna, por ejemplo teniendo los siguientes datos:

grupo, valor
1, 2
1, 3
1, 4
1, 5
2, 1
2, 10
2, 11
2, 5

me tendría que devolver
1, 5
1, 4
1, 3
2, 11
2, 10
2, 5


Pensaría que no se puede crear un agregado para este fin porque tendría que
tener "memoria" para saber si el el 2do o 3ro máximo.

Una opción sería hacer una funcion que recorra los datos pero si hay mucho
datos sería tremendamente demorado.


Si el problema está en el volumen, no son muchos, estimo cerca del
millon y medio de registros, tampoco es poco ;+)

Una preguntas para plantearte un query:

"valor" puede estar repetido? si hay repetidos, deben considerarse?


Si valor puede estar repetido y considerarse, quería ver si por medio
de una consulta se podía armar. Voy a crear una función y listo.


La tabla que contiene grupo y valor tiene algún id único/PK que pueda identificarme de forma única un registro?

Atentamente,

RAUL DUQUE
Bogotá, Colombia


Atentamente,

RAUL DUQUE
Bogotá, Colombia



Gracias por tu tiempo y disposición

Saludos, Alejandro

__________ Information from ESET Smart Security, version of virus signature database 3458 (20080921) __________

The message was checked by ESET Smart Security.

http://www.eset.com


--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán

Responder a