Sto provando a classificare un sottoinsieme di dati all'interno di una tabella ma penso di fare qualcosa di sbagliato. Non riesco a trovare molte informazioni sulla funzione rank() per postgres, forse sto cercando nel posto sbagliato. In entrambi i casi:Come classificare la query postgres
Mi piacerebbe conoscere il grado di un ID che rientra in un cluster di una tabella in base a una data. La mia domanda è la seguente:
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;
sto modellando questo dopo il seguente post StackOverflow: postgres rank
Il motivo penso che sto facendo qualcosa di sbagliato è che ci sono solo 39 righe in url_info che sono cluster_id 9876 e questa query ha funzionato per 10 minuti e non è mai tornata indietro. (in realtà l'ho ripubblicato per un po 'e non ha restituito risultati, eppure c'è una riga nel cluster 9876 per l'ID 1234) Mi aspetto che questo mi dica qualcosa del tipo "id 1234 era 5 per i criteri forniti). restituirà un rango rispetto secondo i miei vincoli di query, giusto?
Questo è Postgres 8.4 btw.
Vuoi il rango relativo a cosa? tutti i record (questo è ciò che la tua query sopra chiede e probabilmente perché ci vuole troppo tempo)? l'insieme di record selezionati dal predicato? qualche altro raggruppamento? La clausola 'over' dovrebbe specificare una' partition by' se non si vuole classificare su tutte le righe. [Ecco il tutorial sulle funzioni della finestra] (http://www.postgresql.org/docs/8.4/static/tutorial-window.html) – dbenhur
Voglio classificarmi rispetto al pub_date. Forse posso spiegare un po 'meglio: url_info contiene migliaia di URL. 39 di loro compse cluster 9876. Selezionando solo url che sono un membro di 9876 (l'URL può SOLO essere membro di un cluster), voglio classificare l'url (che compongono il cluster 9876) in base a pub_date.Continuo a utilizzare partizioni basate su funzioni di finestra per questo? Ho guardato l'URL che hai inviato e sembra che questo si riferisca a elementi di ranking dopo aver calcolato un valore, che non sto facendo qui .... – WildBill