Limit con lazos: ¿PostgreSQL lo implementó?
en SQL Server, la sintaxis superior n con lazos recupera las primeras n filas junto con cualquier lluvia atada. Sin embargo, los usuarios de PostgreSQL pueden estar preguntándose si hay una sintaxis equivalente.
Solución de PostgreSQL: con lazos (Postgresql 13)
comenzando con Postgresql 13, se introdujo la cláusula con ties. Esta cláusula se comporta de manera similar a su contraparte de SQL Server, obteniendo las filas superiores n más cualquier fila atada.
alternativa para Postgresql 12 y más
antes de Postgresql 13, no había un equivalente directo de Top n con los enlaces. Una solución es ejecutar la siguiente consulta:
WITH cte AS ( SELECT *, rank() OVER (ORDER BY) AS rnk FROM tbl ) SELECT * FROM cte WHERE rnk aquí, rango () asigna cada fila un rango, y las filas atadas para el último rango n están incluidos.
ejemplo
considere un número de tabla con valores {10, 9, 8, 8, 2}. La siguiente consulta devolvería {10, 9, 8, 8} usando el método alternativo para PostgreSQL 12 y más:
WITH cte AS ( SELECT nums, rank() OVER (ORDER BY nums DESC) AS rnk FROM Numbers ) SELECT * FROM cte WHERE rnknota: la función rank () utilizada en esta alternativa es diferente de dense_rank (), ya que este último produciría resultados incorrectos devolviendo demasiadas filas.
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