Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

relizar top en oracle

Estas en el tema de relizar top en oracle en el foro de Oracle en Foros del Web. Hola amigos, bueno tengo dudas en una consulta tablas cliente cliente_compra rutc rutcliente nombre numProducto resulta que me piden el cliente que compra mas productos, ...
  #1 (permalink)  
Antiguo 04/05/2013, 00:04
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 10 años, 11 meses
Puntos: 0
Información relizar top en oracle

Hola amigos, bueno tengo dudas en una consulta

tablas
cliente cliente_compra
rutc rutcliente
nombre numProducto


resulta que me piden el cliente que compra mas productos, yo cree una consulta

Código SQL:
Ver original
  1. SELECT cliente.rutc, COUNT(cliente.rutc)
  2. FROM CLIENTE ,CLIENTE_COMPRA_PRODUC
  3. WHERE CLIENTE.RUTC=CLIENTE_COMPRA_PRODUC.RUTCLIENTE
  4. GROUP BY CLIENTE.RUTC
  5. ORDER BY COUNT(cliente.rutc)DESC;

pero me muestra todos los clientes, en orden de la cantidad de compra, pero yo solo quiero el primero, con mysql lo hacia con un top, pero aquí no puedo :/

ojala alguien me pueda ayudar, saludos

Última edición por gnzsoloyo; 04/05/2013 a las 04:24 Razón: SQL sin etiquetar
  #2 (permalink)  
Antiguo 04/05/2013, 04:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: relizar top en oracle

Código SQL:
Ver original
  1. SELECT C.rutc, COUNT(C.rutc)
  2. FROM CLIENTE C ,CLIENTE_COMPRA_PRODUC CP
  3. WHERE
  4.     C.RUTC=CP.RUTCLIENTE
  5.     AND ROWNUM = 1
  6. GROUP BY C.RUTC
  7. ORDER BY COUNT(C.rutc)DESC;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/05/2013, 09:13
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: relizar top en oracle

Gracias por responder, pero yo ya había hecho eso antes, pero solo me saca el primer elemento, no el que se repite mas veces, Saludos
  #4 (permalink)  
Antiguo 04/05/2013, 11:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: relizar top en oracle

Pues trata de deducirlo: Si tu consulta ya te devuelve el orden por repeticiones de mayor a menor, ¿cómo haces para tomar el que más veces se repite?

¿No te parece que bien podrías transformar el resultado en una subconsulta?

Código SQL:
Ver original
  1. SELECT *
  2.     (SELECT C.rutc, COUNT(C.rutc)
  3.     FROM CLIENTE C ,CLIENTE_COMPRA_PRODUC CP
  4.     WHERE
  5.         C.RUTC=CP.RUTCLIENTE
  6.     GROUP BY C.RUTC
  7.     ORDER BY COUNT(C.rutc)DESC) T1
  8. WHERE ROWNUM = 1;

Thinking is a free software tool.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 04/05/2013 a las 11:57
  #5 (permalink)  
Antiguo 04/05/2013, 14:37
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: relizar top en oracle

Muchas gracias por su ayuda, me sirvió mucho para terminar mi consulta

Etiquetas: tabla, top
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:14.