Cómo devolver de los 3 registros superiores.
By admin on May 29, 2008 | In Aprendiz | Send feedback »
Hay a menudo más que una forma de conseguir lo que quieres en Mysql. En este ejemplo consultaremos registros en la tabla del Emp y devolveremos ésos con el valor más alto del campo sal. La primera manera de conseguir los 3 registros superiores (que es la manera estándar de hacerla en el sql) es como sigue:
Code:
select * from emp a | |
where 3 > | |
(select count(*) | |
from emp b where b.sal > a.sal); |
Sin embargo en Mysql se puede utilizar la cláusula del LIMIT para restringir cuántas filas devuelve tu consulta de select. Éste es el equivalente aproximado en Mysql de usar rownum en Oracle.
Code:
select * from emp | |
order by sal desc | |
limit 3; |
¿Sale más fácil que escribiendo una subconsulta, no piensas? Por supuesto hay otros factores tales como funcionamiento y optimización que afecten a tu opción. Pero es siempre bueno saber maneras alternativas de conseguir el mismo resultado, no?
Redactar tarde!
Recuerdes que también puedes utilizar la función Limit en un declaración Group By. Por ejemplo:
Code:
select city_id, count(*) as numpeople | |
from people | |
group by city_id | |
order by count(*) desc limit 5; |
El código anterior trae los 5 arriba city_id con la mayoría de los registros en la tabla.
Espero que ayude a alguien!
No feedback yet
Leave a comment
| « Trucos de Command Line | Presentación y bienvenido! » |