Ciao, voglio selezionare le righe che hanno un campo uguale. Mi spiego meglio: ho una tabella costituita da campo a, campo b, campo c. Io voglio visualizzare tutte le righe che hanno lo stesso campo b. Quale query devo lanciare?
Ciao, voglio selezionare le righe che hanno un campo uguale. Mi spiego meglio: ho una tabella costituita da campo a, campo b, campo c. Io voglio visualizzare tutte le righe che hanno lo stesso campo b. Quale query devo lanciare?
Ok..
campo a campo b campo c
2 4 7
24 4 543
2 4 43
6543 3 89
87 5 43
656 8 654
885 8 49
io voglio visualizzare le righe che hanno lo stesso campo b e quindi:
2 4 7
24 4 543
2 4 43
656 8 654
885 8 49
E' più chiaro?
Ora sì.
edit. Oppure, meglio ancora:codice:select * from tabella where b in ( select b from tabella group by b having count(b) > 1)
codice:select t1.* from tabella as t1 inner join (select b from tabella group by b having count(b) > 1) as t2 on t1.b = t2.b
Ok...meglio la seconda! Grazie mille
Ho notato che nel mio DB ci sono molti duplicati.
La query per eliminarli è la seguente?
select distinct *
from nome_tabella
In base a quale criterio decidi quale record tenere e quali eliminare?Originariamente inviato da lilux
La query per eliminarli è la seguente?
select distinct *
from nome_tabella
Ho notato che hanno TUTTI i campi uguali (e non solo quello da me indicato) quindi credo che non ci sia alcun criterio da utilizzare. Mi basta che rimanga un record!
Mah, vedi un pò come devi raggrupparle, cioè se con
select * from tabella group by a,b,c
oppure se basta
select * from tabella group by b
dipende dalle tue esigenze che non conosco.
A quel punto crei una tabella identica a quella già esistente
create table tabella2 like tabella;
e poi importi i singoli record rimuovendo i doppioni, quindi
insert into tabella2
select * from tabella group by uno_dei_due_raggruppamenti_scritti_all_inizio
Invece di creare un'altra tabella, non c'è un modo di eliminare semplicemente i duplicati?
Il mio intento è quello di avere la tabella in cui non compaiano righe identiche perchè ridondanti!
Per precauzione provala su una copia della tua tabella.codice:delete from tabella where id not in (select * from (select id from tabella group by a,b,c) as t)