/ dados de / backfill usando mysql - mysql, sql, join, subquery

dados de backfill usando mysql - mysql, sql, join, subquery

Oi eu tenho uma tabela que se parece com isso:

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

Minha tarefa é encaminhar preencher os valores para cada ide data até que um novo valor seja conhecido. Por exemplo, gostaria de inserir o valor 10 em 1/2/2011 para id1 e o valor 20 em 1/3/2011 para id2. Eu estou usando o mysql. Qualquer ajuda neste assunto seria altamente apreciada.

Respostas:

0 para resposta № 1

No mysql, realmente não existe uma maneira super eficiente de fazer isso acontecer (que eu possa pensar), mas isso pode ser feito usando uma subconsulta correlacionada:

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;

Isso pressupõe que eu estou interpretando a lógica corretamente. Deixe-me saber se essa é a idéia correta.