Confrontare nomi con DIFFERENCE()
Nel precedente esercizio hai usato SOUNDEX() per controllare i nomi delle/dei statistiche/i dalla tabella flight_statistics.
Ora vuoi fare qualcosa di simile, ma usando la funzione DIFFERENCE(). DIFFERENCE() restituisce 4 quando c’è una corrispondenza identica o molto simile tra due stringhe, e 0 quando c’è poca o nessuna somiglianza.
Se il risultato di DIFFERENCE() tra due stringhe è 4, ma i testi che stai confrontando sono diversi, troverai i dati che devi pulire.
Questo esercizio fa parte del corso
Pulizia dei dati nei database SQL Server
Istruzioni dell'esercizio
- Seleziona i valori distinti delle colonne
statistician_nameestatistician_surnamedaS1. - Esegui un INNER JOIN della tabella
flight_statisticscomeS2su nomi e cognomi con suono simile, nei casi in cuiDIFFERENCEtra la colonna di ciascuna tabella sia 4. - Escludi i valori in cui le colonne
statistician_nameestatistician_surnamesono diverse tra loro rispettivamente inS1e inS2.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
SELECT
-- First name and surnames of the statisticians
DISTINCT S1.___, S1.___
-- Join flight_statistics with itself
FROM ___ S1 INNER JOIN ___ S2
-- The DIFFERENCE of the first name and surname has to be equals to 4
ON ___(S1.___, S2.___) = 4
AND ___(S1.___, S2.___) = 4
-- The texts of the first name or the texts of the surname have to be different
WHERE S1.___ <> S2.___
OR S1.___ <> S2.___