SELECT BY FREQUENCY

06/09/2005 - 18:34 por colt clint | Informe spam
Holla!


Mi mensaje es simple y corta.

Yo tengo una base de datos así:

columna1 columna2
1 34
1 12
1 8
1 1
2 19
2 17
2 11
3 12
3 5


etc.


Yo preciso de su ayuda para construir un SELECT por 2 de las freqcuencias
mayores (columna2) con base en la columna1

Gracias por su ayuda

Colt



-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa

Preguntas similare

Leer las respuestas

#6 colt clint
06/09/2005 - 23:22 | Informe spam
Estimado Espartaco,


Sin problemas.

Datos de entrada:

columna1 columna2 column3
1 34 2
1 12 2
1 8 2
1 1 2
2 19 3
2 17 3
2 11 3
2 9 3
3 22 3
3 15 3
3 13 3
3 8 3
4 18 1
4 5 1

Datos de salida:

columna1 columna2 columna3

1 34 2
1 12 2
2 19 3
2 17 3
2 11 3
3 22 3
3 15 3
3 13 3
4 18 1


1. La colunna3 y la columna1 tienen una estrecha (directa) relacion.
2. Asi, deben ser selecionados tantos elementos de la columna2 (siempre
los mayores, claro) de acuerdo acuerdo con el valor de la columna3.

Vale?

Saludos

Colt




PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
#7 colt clint
07/09/2005 - 00:25 | Informe spam
Muchas Gracias.

Para clarear una coisa:

id= columna1
cantidad = columna2
valor=colunna3

Vale?

Saludos

Colt

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
#8 Esparta Palma
07/09/2005 - 00:26 | Informe spam
Porqué no nos envías un conjunto de datos de entrada, así como un
conjunto de datos de salida (supuestos) porque la mera verdad no entendí
el cómo está estructurados tus campos (y/o porqué).

¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º

Espartaco Palma Martínez
SysOp http://www.PortalFox.com
México D.F.
MoBlogs!
http://weblogs.golemproject.com/esparta/
http://www.espartha.com/blog/

colt clint wrote:
Mostrar la cita
#9 colt clint
07/09/2005 - 00:54 | Informe spam
Espartaco,

Muchas gracias.

También pienso que así será muy dificil de hacer las cosas. Yo tengo otra
idea más prática, para trabajar solamente con 2 columnas, pero abriré otra
mensaje para poner esta.

Otra vez más, muchas gracias.

Saludos

Colt

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
#10 Esparta Palma
07/09/2005 - 01:36 | Informe spam
Pues así como lo veo no hay una forma directa de sacarlo con un solo
query, deberás hacer un barrido de cuántos elementos maximos deseas. Si
estuvieran normalizados sería más directo, pero aún así no hay problema:

** Primero sacar los IDs y los elementos que se desean:

SELECT DISTINCT iid, cantidad ;
FROM TuTabla INTO CURSOR cBase

*** Crear un cursor donde almacenaremos todos los máximos

CREATE CURSOR cResults (iid int, valor int)

*** Recorreremos el cursor de IDs y cantidad de máximos a obtener
SELECT "cBase"
SCAN
*** Creamos un cursor con la cantidad de máximos requeridos
*** en base de la tabla donde sacaremos los valores
SELECT TOP cBase.Cantidad iid, valor ;
FROM TuTabla ;
ORDER BY iid, valor DESC ;
WHERE iid = cBase.iID ;
INTO CURSOR cMaximos ;
NOFILTER
*** Seleccionamos el cursor que almacenará los datos para ...
SELECT "cResults"
*** ... Agregarle los datos que sacaremos uno a uno.
APPEND FROM DBF("cMaximos")
ENDSCAN

*** Cerrar los cursores que ya no utilizarás.

USE IN (SELECT("cBase"))
USE IN (SELECT("cMaximos"))

Espero te sirva.

¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º

Espartaco Palma Martínez
SysOp http://www.PortalFox.com
México D.F.
MoBlogs!
http://weblogs.golemproject.com/esparta/
http://www.espartha.com/blog/

colt clint wrote:
Mostrar la cita
Ads by Google
Search Busqueda sugerida