En la consulta de la base de datos, los resultados generalmente se limitan a líneas con características específicas, como el valor máximo o mínimo en columnas específicas. En Oracle SQL, puede usar la función de análisis (como Rank (), Dense_Rank () o Row_Number ()) para lograr este propósito.
para el valor más alto rank () y dense_rank ()Las funciones de análisis como Rank () y Dense_Rank () asignan un nivel a cada línea de acuerdo con el tipo especificado. Para recuperar el valor máximo superior en la columna, puede usar el siguiente formato de consulta:
Seleccionar *
De (de (de (de (de (de
SELECCIONAR
Row_number () La función de análisis asigna un número de serie para cada línea. Puede usarlo para recuperar un número específico de líneas, independientemente de su valor. Por ejemplo:
SELECT *
FROM (
SELECT , RANK() OVER (ORDER BY DESC) AS rnk
FROM
)
WHERE rnk
Aunque no es común, también puede usar la columna pseudo Rownum para limitar los resultados a una cantidad específica. Sin embargo, debe usarse con precaución, porque Rownum se evalúa antes de la orden por oración, lo que puede conducir a resultados impredecibles.
Ejemplo: Empleados con el salario más alto
para explicar el uso de rank () y dense_rank (), el uso de 5 empleados con el salario más alto:Seleccionar * De (de (de (de (de (de Seleccione Empno, Sal, Rank () Over (Orden por Sal Desc) como RNK De EMP Curar Donde rnk Esta consulta asigna un nivel numérico para cada empleado en función del salario del empleado, uno de los cuales representa el empleado salarial más alto. Luego muestra a los 5 mejores empleados en el orden de disminución del salario.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3