Ho una domanda che è la selezione di un gruppo di campi relativi al nome e indirizzo dei clienti, ma si riduce a:Perché "SELECT DISTINCT a, b FROM ..." restituisce meno record di "SELECT DISTINCT A + '|' + B DA ... "?
SELECT DISTINCT a, b, c, ... FROM big_dumb_flat_table
che restituisce un gruppo di record (10.986.590). Se si sostituisce le virgole nella select-list per formattare come una stringa concatenata tubi separati:
SELECT DISTINCT a + '|' + b + '|' + c + '|' + ... FROM big_dumb_flat_table
E 'il ritorno di 248 più record. Mi sono rassicurato sul fatto che non ci sono tubi in nessuno dei campi che potrebbero rovinare la fedeltà del set restituito. Cosa sta succedendo qui?
Potresti vedere cosa ottieni con 'SELEZIONA a, b, c ... DA ... GRUPPO A a, b, c ...' e modificalo nella tua domanda? (come 'DISTINCT' è tecnicamente un (molto conveniente) hack) – AakashM
Aggiungete anche count (*) alle query e vediamo cosa fornisce – Mark
Mi aspetterei che la query utilizzi la concatenazione per restituire ** un numero inferiore di record **, poiché se qualcuno di i valori sono 'nulli' otterrai un risultato' nullo'. – RedFilter