Come rimuovere la ridondanza dei dati in una tabella? [chiuso]

-1
F1  F2  F3  C1  C2  C3
------------------------------------------------
A   B   C   1       
D   E   F   2       
A   B   C       3   
D   E   F       4   
A   B   C           5
D   E   F           6

Ho una tabella come questa. ho bisogno che la mia tabella sia libera dalla ridondanza dei dati come questo

F1  F2  F3  C1  C2  C3
-----------------------
A   B   C   1   3   5
D   E   F   2   4   6

non riesco a capire la logica ottimizzata. qualcuno può darmi una mano?

    
posta Durga Prasad Guntoju 19.07.2013 - 13:32
fonte

2 risposte

2

Presumo che tu stia parlando di una tabella in un RDBMS.

Tale processo è chiamato normalizzazione.

Il problema è causato dal fatto che TABLE1 non ha una chiave primaria o almeno un indice univoco con cui cominciare.

Se TABLE1 aveva un PK (o un indice univoco), ad esempio F1,F2,F3 , non avresti potuto inserire più di una riga con gli stessi valori di quelle colonne. Questo ti avrebbe costretto ad aggiornare le righe invece di inserirne una nuova.

La tua domanda non è chiara, ma se quello che vuoi è in qualche modo ottenere TABLE2 da TABLE1 , questo lo farebbe:

create table2 as 
select
    f1,
    f2,
    f3,
    max(c1) c1,
    max(c2) c2,
    max(c3) c3
from
    table1
group by
    f1, f2, f3

purché non vi siano valori sovrapposti come sembra suggerire il campione.

    
risposta data 19.07.2013 - 14:42
fonte
1

Non so quale logica non ottimizzata hai provato, ma funziona sull'esempio del set di dati che hai dato:

select 
     f1
    , f2
    , f3
    , max(c1) as c1
    , max(c2) as c2
    , max(c3) as c3
from #RawData
group by f1, f2, f3
    
risposta data 19.07.2013 - 14:54
fonte

Leggi altre domande sui tag