GOOGLE ADS

sábado, 23 de abril de 2022

SELECCIONE DISTINTO

Estoy trabajando en un paquete SSIS donde estoy importando datos de un archivo CSV a una tabla SQL.

El único campo que me preocupa es el nombre de usuario. Este nombre de usuario debe ser único. No me importa si el nombre o el apellido son iguales o no.

En el paquete, importé los datos del archivo a una tabla SQL temporal. Y luego usé SELECT DISTINCT para elegir un nombre de usuario único. Y luego inserte en la tabla de destino.

El problema es: cuando hago un SELECT DISTINCT Username, Firstname and Lastname FROM tempUsers.

Vuelve:


  • JSmith, Juan, Smith

  • JSmith, Joe, inteligente

  • MBopp, Mary, Boppins


Pero quiero que vuelva:


  • JSmith, Juan, Smith

  • MBopp, Mary, Boppins



Solución del problema

SELECT DISTINCTseleccionará todas las filas distintas para cada columna que especifique, por lo que no es exactamente lo que está buscando.

Si su tipo de SQL lo admite, intente GROUP BYcon FIRST(), como el siguiente. Devolverá el primer registro para cada nombre de usuario individual.

SELECT Username, FIRST(Firstname), FIRST(Lastname)
FROM tempUsers
GROUP BY Username

De lo contrario, debe hacerlo de la manera difícil usando una ID de fila y subseleccionando:

SELECT Username, FIRST(Firstname), FIRST(Lastname)
FROM tempUsers
WHERE RowID IN (SELECT MIN(RowID)
FROM tempUsers
GROUP BY Username)

** No debe usar MIN con Firstname y Lastname, porque no puede garantizar que provengan de la misma fila:

SELECT Username, MIN(Firstname), MIN(Lastname)
FROM tempUsers
GROUP BY Username

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...