es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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]

Tags:  ,

Answer

  1. Avatar for 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í:

    SELECT 
       user_id,
       MIN(CASE 
          WHEN 1/1 = 1 THEN 'Caso 1'
          WHEN 2/2 = 1 THEN 'Caso 2'
       END) AS resultado
    FROM nombre_tabla
    GROUP BY user_id;
    

    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.

Comments are closed.