Estoy tratando de encontrar la manera de obtener la posición relativa de un elemento único en una consulta relativa a todos los artículos devueltos por la consulta.
Por ejemplo, la forma larga de obtener la respuesta sería:
single_item = SELECT * DESDE mesa DONDE id = 65
resultado = SELECT * DESDE mesa DONDE published_date < date_value
x = 1
foreach ( resultado como elemento ):
si ( elemento . id == single_item . id ):
required_value = x
endif
x + +
endforeach
Tenemos dos opciones utilizando window functions
La primera es:
WITH summary AS (
SELECT t.*,
ROW_NUMBER() OVER(ORDER BY t.published_date) AS position
FROM TABLE t)
SELECT s.*
FROM summary s
WHERE s.id = 65
La segunda sería sin utilizar WITH:
SELECT s.*
FROM (SELECT t.*,
ROW_NUMBER() OVER(ORDER BY t.published_date) AS position
FROM TABLE t) s
WHERE s.id = 65
Last modified: 14 septiembre, 2017