Seleccionar el máximo de entradas en un rango en SQL Server.
Tengo una columna de salarios en la cual debo seleccionar entre un rango de 10000 y 20000, y también las filas superiores del salario máximo.
Columna que tengo:
25000
17000
17000
15000
14000
9000
Filas que quiero seleccionar:
17000
17000
17000
Puedo usar las filas superiores (top n rows), pero eso solo se aplica a esta columna. Lo que quiero hacer es, si esta columna tiene 2 filas que tienen el salario máximo, seleccionaría 2, pero si otra columna tiene 5 filas que tienen el salario máximo, como se muestra a continuación, entonces debería seleccionar 5.
Columna que tengo:
24000
17000
17000
17000
17000
17000
15000
14000
9000
Filas que quiero seleccionar:
17000
17000
17000
17000
17000
Mi instrucción SQL:
select max(salary)
from table
where salary between 10000 and 20000
order by salary desc;
Esta instrucción solo devuelve 1 fila.
davy.ai
Para seleccionar tanto el rango de 10000 a 20000 como las filas con el salario máximo, podemos combinar las condiciones utilizando el operador UNION ALL. Aquí está la instrucción SQL para obtener el resultado deseado:
Explicación:
Nota: El operador UNION ALL se utiliza para combinar los resultados de las dos instrucciones SELECT. Si utilizamos UNION en lugar de UNION ALL, se eliminarán los duplicados y solo obtendremos una fila para cada valor. Dado que queremos incluir duplicados, utilizamos UNION ALL.