Come compilare colonne con formattazione errataHo una tabella dati con righe 1.6M. Questa tabella di dati è stata creata concatenando molte tabelle di dati più piccole. Sfortunatamente, queste tabelle di dati più piccole presentano lacune in molte colonne. Ad esempio, ci saranno diverse migliaia di righe che sono state tutte scritte nella stessa data, ma la data e il timestamp sono solo compilati nella riga superiore della tabella dei dati più piccola. Ciò significa che ho una tabella dati che ha il campo della data compilato solo su ogni 9.000-12.000 righe, con tutto ciò che è vuoto.
È possibile avere una sorta di riempimento intelligente dove riempie le righe vuote con un valore finché non raggiunge una riga non vuota e quindi inizia a riempire le righe successive con questo nuovo valore? Ci vorrebbe un'eternità per farlo a mano con il comando crappy fill-to-row per ogni batch di 10K righe nella mia tabella di dati a righe 1.6M.
COME OSSERVA ORA:
| Riga # | Data | Cosa id | Dati 1 | Dati 2 |
| 1 | 8 marzo 2013 | X001 | Attr.1 | Color.3 |
| 2 | | | Attr.2 | Color.2 |
| ... | | | ... | ... |
9653 | | | Attr.9653 | Color.9653 |
9654 | 21 marzo 2013 | X002 | attr1 | Color.1 |
| 9.655 | | | Attr.2 | Color.2 |
| ... | | | ... | ... |
| 19.630 | | | Attr.9975 | Color.9975 |
| 19.631 | 30 marzo 2013 | X003 | Attr.1 | Color.1 |
| 19.632 | | | Attr.2 | Color.2 |
| .. | | | ... | ... |
COME VOGLIO ESAMINARE:
| Riga # | Data | Cosa id | Dati 1 | Dati 2 |
| 1 | 8 marzo 2013 | X001 | Attr.1 | Color.3 |
| 2 | 8 marzo 2013 | X001 | Attr.2 | Color.2 |
| ... | 8 marzo 2013 | X001 | ... | ... |
9653 | 8 marzo 2013 | X001 | Attr.9653 | Color.9653 |
9654 | 21 marzo 2013 | X002 | attr1 | Color.1 |
| 9.655 | 21 marzo 2013 | X002 | Attr.2 | Color.2 |
| ... | 21 marzo 2013 | X002 | ... | ... |
| 19.630 | 21 marzo 2013 | X002 | Attr.9975 | Color.9975 |
| 19.631 | 30 marzo 2013 | X003 | Attr.1 | Color.1 |
| 19.632 | 30 marzo 2013 | X003 | Attr.2 | Color.2 |
| .. | 30 marzo 2013 | X003 | ... | ... |
Ri: Come riempire colonne con formattazione errataEcco una semplice sceneggiatura che farà il trucco
Names Default To Here( 1 );
dt = Current Data Table();
// for example I will call the column in question, "date"
For Each Row(
If( Is Missing( :date ) == 1,
:date = Lag( :date )
)
);