Regresar   Foros de CHW > Software > Lenguajes de Programación


Estás leyendo el thread

Top 5 en Query

 en el foro Lenguajes de Programación, que dice: "Tengo la siguiente Query SELECT EQUIPO, Count(EQUIPO) FROM V_DETENCIONES_TURNO WHERE to_char(Fecha,'mm')='03' AND to_char(Fecha,'yyyy')='2008' GROUP BY "



bienvenido

Tags
, ,

Responder

 

LinkBack Herramientas
Old 25-mar-2008, 11:28   #1
Duke_Quakem
Experimentado
 
Avatar de Duke_Quakem
 
Registrado: septiembre-2006
Posts: 553


Top 5 en Query

Tengo la siguiente Query

SELECT EQUIPO, Count(EQUIPO)
FROM V_DETENCIONES_TURNO
WHERE to_char(Fecha,'mm')='03' AND to_char(Fecha,'yyyy')='2008'
GROUP BY EQUIPO
ORDER BY Count(EQUIPO) DESC

La idea es poder seleccionaer los 5 primeros lugares de la query.
Se que se puede hacer por código, pero igual me gustaría saber si eso es posible definirlo en la query...
__________________

Para ver este contenido ud necesita Flash plugin.

Descargue Macromedia Flash Player




Duke_Quakem is online now   Citar y responder
Recuerda que no verás este banner una vez que te registres

Old 25-mar-2008, 11:35   #2
Kensho
Buscando el norte
 
Avatar de Kensho
 
Registrado: agosto-2006
Location: En este cuerpo que me contiene.
Posts: 1.015


Enviar un mensaje por MSN a Kensho
SELECT * FROM T LIMIT 10 PostgreSQL, MySQL, SQLite, H2
SELECT * from T WHERE ROWNUM <= 10 Oracle (also supports the standard, since Oracle8i) SELECT * FROM T FETCH FIRST 10 ROWS ONLY DB2 (also supports the standard, since DB2 v8)
SELECT TOP 10 * FROM T MS SQL Server (also supports the standard, since SQL Server 2005), Sybase ASE, SQL_Anywhere, MS Access

rtfm pa la otra
__________________
A los que contemplan la luna las nubes a veces ofrecen una pausa.
Kensho is offline   Citar y responder
Old 26-mar-2008, 09:56   #3
Duke_Quakem
Experimentado
 
Avatar de Duke_Quakem
 
Registrado: septiembre-2006
Posts: 553


gracias por la respuesta. sin embargo eso no me funcionaba hacerlo directamente ya que si agrego esa opcion me limita la query a las 10 filas de la consulta, y lo que yo necesito es que me seleccione las 10 primeras filas del resultado.

Lo que tuve que hacer fué una doble consulta. No se si será la óptima, pero funciona

SELECT EQUIPO, FALLAS
FROM
(
SELECT EQUIPO, Count(EQUIPO) AS FALLAS
FROM V_DETENCIONES_TURNO
WHERE to_char(Fecha,'mm')='03' AND to_char(Fecha,'yyyy')='2008'
GROUP BY EQUIPO
ORDER BY Count(EQUIPO) DESC
)
WHERE ROWNUM <= 10
__________________

Para ver este contenido ud necesita Flash plugin.

Descargue Macromedia Flash Player




Duke_Quakem is online now   Citar y responder
Old 26-mar-2008, 10:00   #4
Beno.sh
 
Avatar de Beno.sh
 
Registrado: octubre-2007
Location: En Mi Espacio
Posts: 3.459

Mi PC

y si lo haces

SELECT EQUIPO, Count(EQUIPO) AS FALLAS
FROM V_DETENCIONES_TURNO
WHERE to_char(Fecha,'mm')='03' AND to_char(Fecha,'yyyy')='2008'
GROUP BY EQUIPO, ROWNUM
HAVING ROWNUM <= 10
ORDER BY Count(EQUIPO) DESC

asi me funciona a mi

Editado por Beno.sh en 26-mar-2008 a las 10:03.
Beno.sh is offline   Citar y responder
Old 26-mar-2008, 10:01   #5
unreal4u
Maestro Chasquilla
OverLord
 
Avatar de unreal4u
 
Registrado: octubre-2005
Location: Temuco, Chile
Posts: 13.487


Enviar un mensaje por ICQ a unreal4u
no entendí eso de dejar "seleccionado" las 10 primeras ...

Yo también pienso lo mismo del LIMIT, pero no veo pq no debería funcionar

Saludos !!
__________________
Sé amable y:
Lee los 14 mandamientos de CHW.
Lea el Reglamento de Compra-Venta
También Nuestra Visión
Y por último, Nuestra Historia


Spoiler
Frase célebre de hoy: "Debido a la gran cantidad de guiños y referencias relacionadas con el mundo informático, esta sección permanecerá siempre incompleta, al menos hasta que se complete"
unreal4u is offline   Citar y responder
Old 26-mar-2008, 10:04   #6
Beno.sh
 
Avatar de Beno.sh
 
Registrado: octubre-2007
Location: En Mi Espacio
Posts: 3.459

Mi PC

Quote:
Originalmente publicado por unreal4u Ver post
no entendí eso de dejar "seleccionado" las 10 primeras ...

Yo también pienso lo mismo del LIMIT, pero no veo pq no debería funcionar

Saludos !!
pero el limit no funciona en oracle, para eso es el el rownum
Beno.sh is offline   Citar y responder
Old 27-mar-2008, 09:19   #7
Kensho
Buscando el norte
 
Avatar de Kensho
 
Registrado: agosto-2006
Location: En este cuerpo que me contiene.
Posts: 1.015


Enviar un mensaje por MSN a Kensho
Quote:
Originalmente publicado por Duke_Quakem Ver post
me limita la query a las 10 filas de la consulta, y lo que yo necesito es que me seleccione las 10 primeras filas del resultado.
ahh... me quedó clarísimo sconf
__________________
A los que contemplan la luna las nubes a veces ofrecen una pausa.
Kensho is offline   Citar y responder
Old 28-mar-2008, 11:30   #8
Duke_Quakem
Experimentado
 
Avatar de Duke_Quakem
 
Registrado: septiembre-2006
Posts: 553


Quote:
Originalmente publicado por Hanamishi Ver post
y si lo haces

SELECT EQUIPO, Count(EQUIPO) AS FALLAS
FROM V_DETENCIONES_TURNO
WHERE to_char(Fecha,'mm')='03' AND to_char(Fecha,'yyyy')='2008'
GROUP BY EQUIPO, ROWNUM
HAVING ROWNUM <= 10
ORDER BY Count(EQUIPO) DESC

asi me funciona a mi
Lo probé y me da el mismo error que al principio. Selecciona las 10 primeras filas de la tabla de origen y lo que necesito es que seleccione las 10 primeras de la tabla resultante.


Quote:
Originalmente publicado por unreal4u Ver post
no entendí eso de dejar "seleccionado" las 10 primeras ...

Yo también pienso lo mismo del LIMIT, pero no veo pq no debería funcionar

Saludos !!
Es para estadísicas. En la BD existen definidas alrededor de 160 causas de fallas posibles y se quiere saber cuales son las causas mas frecuentes. El objetivo es representar las 10 mas comunes en un indiciador gráfico que se muestra en la pagina de inicio del portal.

También por asunto de comodidad y optimizacion de recursos. Se que puedo hacer un ciclo desde 1 a 10 para seleccionarlas, pero si puedo evitar enviar una tabla de 160 filas en donde 150 no voy a usar por una de 10 filas en la que ninguna se queda en el aire, mejor. Asi me aseguro de que la pagina no demore tanto en cargar (al hacer cálculos innecesarios) ni tampoco sobreexigirle al servidor.
__________________

Para ver este contenido ud necesita Flash plugin.

Descargue Macromedia Flash Player





Editado por Duke_Quakem en 28-mar-2008 a las 11:36.
Duke_Quakem is online now   Citar y responder
Responder

  Foros de CHW > Software > Lenguajes de Programación

Herramientas

Ir a

Discusiones similares

Discusión Iniciada por Foro Respuestas Último post
Dura con query en SQL SERVER dnl_garcia Lenguajes de Programación 8 12-mar-2008 11:09
Alias en Microsoft Query? Amenadiel Lenguajes de Programación 14 02-sep-2007 18:02


Todas las horas son GMT -4. La hora es 20:54.

Add to Technorati Favorites eXTReMe Tracker
(cc) 2003-2008 CHW
SEO by vBSEO 3.2.0    Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Forums Directory