¿Cómo recupero el segundo valor más alto de una tabla?Recuperando el segundo valor más alto de una tabla
Respuesta
En MySQL se podría utilizar, por ejemplo, LIMIT 1, 1
:
SELECT col FROM tbl ORDER BY col DESC LIMIT 1, 1
Véase el MySQL reference manual: SELECT Syntax).
La cláusula LIMIT se puede utilizar para limitar el número de filas devueltas por la instrucción SELECT. LIMIT toma uno o dos argumentos numéricos, que deben ser constantes enteras no negativas (excepto cuando se usan declaraciones preparadas).
Con dos argumentos, el primer argumento especifica el desplazamiento de la primera fila a devolver, y el segundo especifica el número máximo de filas a devolver. El desplazamiento del registro inicial es 0 (no 1):
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
Tal vez:
SELECT * FROM table ORDER BY value DESC LIMIT 1, 1
¿Tal vez ...? Por cierto, si sangras tu código en cuatro espacios obtendrás un resultado más bonito. – Patrick
select max(val) from table where val < (select max(val) form table)
SELECT E.lastname, E.salary FROM employees E
WHERE 2 = (SELECT COUNT(*) FROM employess E2
WHERE E2.salary > E.salary)
Tomado de here
Esto funciona en casi todos Dbs
Creo que> debe ser> =. Además, esto no funcionará si alguno de los valores mejor clasificados tiene entradas múltiples (por ejemplo, si hay dos empleados con el mismo salario más alto, y está tratando de obtener los empleados con el segundo salario más alto) – potatopeelings
no es eso obtener el tercero? Si tiene 2 valores más grandes ... pero por lo demás se ve color de rosa. – ANeves
Select Top 1 sq.ColumnToSelect
From
(Select Top 2 ColumnToSelect
From MyTable
Order by ColumnToSelect Desc
)sq
Order by sq.ColumnToSelect asc
una solución sería la siguiente:
SELECT var FROM table ORDER BY var DESC LIMIT 1,1
seleccione la parte superior 2 nombre_campo de fin nombre_tabla por desc límite nombre_campo 1
Cuando usa límite no puede usar TOP Arriba es para SQL Server – Madhivanan
fresca, esto es casi como Código de golf.
Microsoft SQL Server 2005 y superior:
SELECT *
FROM (
SELECT
*,
row_number() OVER (ORDER BY var DESC) AS ranking
FROM table
) AS q
WHERE ranking = 2
Debería usar 'DENSE_RANK' para tener en cuenta las relaciones. –
probar este
SELECT * FROM
(SELECT empno, deptno, sal,
DENSE_RANK() OVER (PARTITION BY deptno ORDER BY sal DESC NULLS LAST) DENSE_RANK
FROM emp)
WHERE DENSE_RANK = 2;
Esto funciona tanto en Oracle y SQL Server.
Tu código genera un error de sintaxis en SQL Server. Sin duda, podría ser portado, sin embargo. – onedaywhen
Prueba este
SELECT TOP 1 Column FROM Table WHERE Column < (SELECT MAX(Column) FROM Table)
ORDER BY Column DESC
SELECT TOP 1 Column FROM (SELECT TOP <n> Column FROM Table ORDER BY Column DESC)
ORDER BY ASC
cambio del n para obtener el valor de cualquier posición
- 1. Seleccione el segundo valor más alto por clave foránea distinta
- 2. Valor más alto de una matriz asociativa
- 3. Seleccione el segundo más grande de una tabla sin límite
- 4. Obtener el valor más alto de una columna en MongoDB
- 5. Encontrar el valor más alto en una enumeración
- 6. Devuelve el índice del valor más alto en una matriz
- 7. Java: Encontrar el valor más alto en una matriz
- 8. orden SQL por el valor más alto de dos columnas
- 9. consulta para encontrar el primer y el segundo valor más grande de un grupo
- 10. PHP Obtenga el valor más alto de la matriz
- 11. Cómo eliminar el valor más alto en un grupo
- 12. Seleccione el segundo valor más mínimo en Oracle
- 13. ¿Cómo encontrar el n el valor más alto de una columna?
- 14. Consulta SQL para encontrar el N-ésimo salario más alto de una tabla de salarios
- 15. El personaje Unicode más alto?
- 16. ¿Cómo obtener el enésimo salario más alto de una tabla sin usar TOP y subconsulta?
- 17. SQL - ¿Cómo encontrar el número más alto en una columna?
- 18. máximo (más alto) y el mínimo valor (más bajo) de tres enteros
- 19. cómo eliminar una clave de un diccionario con el valor más alto?
- 20. Recuperando valor único usando JPA?
- 21. Recuperando todas las filas de una tabla sin HQL?
- 22. Idiomas interpretados: ¿el nivel más alto es el más rápido?
- 23. MySQLDataReader recuperando el problema del valor nulo en C#
- 24. ¿Cómo obtengo el índice del valor más alto en una matriz usando LINQ?
- 25. ¿Cuál es la forma más fácil de obtener una clave con el valor más alto de un hash en Perl?
- 26. ¿Cuál es la consulta SQL más simple para encontrar el segundo valor más grande?
- 27. Recuperando los registros más recientes dentro de una consulta
- 28. C#: Recuperando el valor de DataTable usando PrimaryKey
- 29. Encontrar el orden más alto 1 en una primitiva Java
- 30. ¿Cómo encontrar el número más alto en una matriz?
puede usted por favor, puesto que su estructura de la tabla y lo que has probado hasta ahora? – oezi
Y el dialecto SQL que está utilizando. Hasta ahora, hay dos respuestas aparentemente relacionadas con MySQL, pero supongo que ambas no funcionarían con ningún otro DBMS. – Joey
La pregunta se vuelve más interesante si tiene varios grupos en la tabla, por ejemplo, una columna LAST_NAME, y para cada LAST_NAME desea recuperar a la persona con la segunda EDAD más alta. ¿Es ese el caso, o solo quieres el segundo más alto de toda la mesa? – thomaspaulb