/ / backfill dati usando mysql - mysql, sql, join, subquery

recuperare i dati utilizzando mysql - mysql, sql, join, subquery

Ciao ho un tavolo che sembra qualcosa del genere:

Date ID Value
1/1/2011 id1 10
1/2/2011 id1 NULL
1/3/2011 id1 20
1/1/2011 id2 20
1/3/2011 id2 NULL
1/4/2011 id2 30

Il mio compito è di inoltrare i valori per ogni ide data fino a quando un nuovo valore diventa noto. Ad esempio, vorrei inserire il valore 10 in 1/2/2011 per id1 e il valore 20 in 1/3/2011 per id2. Sto usando mysql. Qualsiasi aiuto su questo sarebbe molto apprezzato.

risposte:

0 per risposta № 1

In mysql, non c'è davvero un modo super efficiente per fare in modo che ciò accada (che io possa pensare) ma potrebbe essere realizzato usando una subquery correlata:

UPDATE table
SET value = (SELECT value
FROM Table AS T1
WHERE T1.ID = table.ID
and t1.DATE <= table.Date
LIMIT 1)
WHERE table.Value IS NULL;

Questo presume che io stia interpretando correttamente la logica. Fammi sapere se questa è l'idea giusta.