Sentencia CASE de SQL con múltiples IDS que muestran valores repetidos
Soy consciente de que la sentencia CASE de abajo selecciona la primera condición verdadera:
SELECT
CASE
WHEN 1/1 = 1 THEN ‘Caso 1’
WHEN 2/2 = 1 THEN ‘Caso 2’
END;
Tengo un problema en el que un solo usuario parece tener tanto el Caso 1 como el Caso 2 en varias filas.
La imagen a continuación muestra que el identificador de usuario “aaaa” aparece más de una vez para cada evaluación de caso. Estoy buscando una forma de hacer que mi SQL produzca solo un resultado para el usuario “aaaa” incluso si aparece 100 veces en la tabla. Quiero que muestre el primer resultado verdadero para ese usuario.
Resultado:
Atentamente,
[Su nombre]
davy.ai
Para resolver este problema, puede agregar una cláusula GROUP BY para agrupar los resultados por ID de usuario y seleccionar solo el primer resultado verdadero para cada usuario usando la función MIN. La consulta SQL actualizada se vería así:
Esto agrupará los resultados por ID de usuario y seleccionará solo el primer resultado verdadero para cada usuario, lo que resultará en la salida esperada que se muestra en la segunda imagen.