FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ultimo seis registros
Saludos a todos.
Tengo la siguiente tabla con dos columnas y cinco registros: columna1,columna2 ana,10 maria,15 jose, 11 jesus, 20 martin,30 Necesito sacar el promedio de los tres ultimos registros. Cual seria la instruccion en sql en firebird. Gracias por su atencikon... |
#2
|
||||
|
||||
Algo como esto funcionaría
select sum(columna2) / 3 from tabla where id in (select first 3 id from tabla order by id descending) Como puedes ver he añadido una columna más, la columna 'id' para especificar la clave primaria. Con esa clave primaria puedes ordenar descendentemente para obtener los 3 últimos registros. Saludos. |
#3
|
|||
|
|||
Hola sierraja, también puedes hacer algo como esto...
Lo de guillotmarc es una muy buena solución, no conocía el select first... Saludos!!
__________________
La amistad es la union de dos almas para formar una sola. |
#4
|
||||
|
||||
Hola sierraja, sería bueno que tuvieras un campo al puedas ordenarlo de forma desencente como el id que te indica guillotmarc y obtener con first o rows la cantidad de registros que quieres y aplicarle AVG para el promedio, pero si solo tienes los dos campos que nos muestras lo que se me ocurre es que primero hagas una consulta para obtener la cantidad de registros de tu tabla, restarle la cantidad de los registros que quieres y utilizar skip en tu siguiente consulta.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#5
|
||||
|
||||
Cita:
Respecto al FIRST, es lo mismo que el ROWS, solo que se pone a continuación de SELECT y no al final de la consulta. De nuevo he utilizado el FIRST, porqué este funciona en todas las versiones de Firebird, mientras que el ROWS solo funciona en Firebird 2.0 para arriba. Finalmente, fijate @ricardojosep que @sierraja nos ha pedido los últimos tres registros, pero tu consulta hace la media de los tres primeros (y ya es mucho suponer que sean los tres primeros, puesto que si no le marcamos ninguna ordenación, el motor puede escoger el orden y los tres registros que primero le vengan a mano, y técnicamente seguirá siendo igual de correcto). Para especificar que queremos los tres últimos registros hay que poner forzosamente un order by, es decir, proporcionar un campo sobre el que se pueda especificar quienes van primeros y quienes últimos. Saludos. Última edición por guillotmarc fecha: 28-01-2010 a las 17:44:29. |
#6
|
|||
|
|||
Hola guillotmarc, tiene razon con todo lo que has dicho, realmente me olvide de ordenar la consulta para obtener los ultimos 3 registros.
Siempre se aprende algo nuevo! Saludos!!! Ricardo.
__________________
La amistad es la union de dos almas para formar una sola. |
#7
|
||||
|
||||
Saludos a todos.
Relamente la propuesta de guillotmarc me funciono al pelo y efectivamente los comentarios siguientes van directamente al grano y son aplicables en su totalidad. Pero la situacion fue solucionada con el aporte de guillotmarc. Gracias a todos,son un excelente equipo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Microsoft paga seis mil millones de dólares por una empresa modesta | semptrion | Noticias | 5 | 27-05-2007 16:37:56 |
Arreglo de Registros, con arreglos de Registros(Dinamico) | PiornoCKA&G | Varios | 4 | 05-01-2007 08:53:30 |
por que duplicidad de registros con clientdataset sin ingresar registros ...mysql | Arturo | MySQL | 3 | 05-09-2006 18:39:37 |
Seis Mil | Casimiro Notevi | La Taberna | 17 | 18-07-2006 23:05:57 |
Como eliminar los registros de hace seis horas | salvica | SQL | 4 | 23-08-2004 19:02:44 |
|