Estoy tratando de clasificar un subconjunto de datos dentro de una tabla, pero creo que estoy haciendo algo mal. No puedo encontrar mucha información sobre la función de rango() para postgres, tal vez estoy buscando en el lugar equivocado. De cualquier forma:Cómo clasificarse en la consulta de postgres
Me gustaría saber el rango de una identificación que se encuentra dentro de un clúster de una tabla basada en una fecha. Mi consulta es la siguiente:
select cluster_id,feed_id,pub_date,rank
from (select feed_id,pub_date,cluster_id,rank()
over (order by pub_date asc) from url_info)
as bar where cluster_id = 9876 and feed_id = 1234;
estoy modelando esto después del siguiente post StackOverflow: postgres rank
La razón creo que estoy haciendo algo mal es que sólo hay 39 filas en url_info que se encuentran en cluster_id 9876 y esta consulta se ejecutó durante 10 minutos y nunca volvió. (en realidad lo volvieron a ejecutar durante bastante tiempo y no devolvió ningún resultado, sin embargo, hay una fila en el clúster 9876 para el ID 1234). Espero que esto me diga algo así como "id 1234 fue el quinto para los criterios dados". devolverá un rango relativo de acuerdo con mis restricciones de consulta, correctos?
Ésta es Postgres 8.4 por cierto.
¿Quieres el rango relativo a qué? todos los registros (esto es lo que pregunta su consulta anterior y probablemente ¿por qué tarda demasiado?) el conjunto de registros seleccionados por el predicado? alguna otra agrupación? La cláusula 'over' debe especificar una' partition by' si no desea clasificar todas las filas. [Aquí está el tutorial sobre las funciones de la ventana] (http://www.postgresql.org/docs/8.4/static/tutorial-window.html) – dbenhur
Quiero clasificar en relación con el pub_date. Quizás pueda explicarlo un poco mejor: url_info tiene miles de URL. 39 de ellos compse cluster 9876. Al seleccionar solo url's que son miembros de 9876 (la url solo puede ser miembro de un clúster), quiero clasificar las url (que componen el clúster 9876) en orden basado en pub_date.¿Todavía uso particiones basadas en funciones de ventana para esto? Miré la URL que enviaste y parece que esto se refiere a los elementos de clasificación después de que calculo algún valor, que no estoy haciendo aquí ... – WildBill