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.

Necesito filtrar los valores condicionales de una tabla en MySql.

Me he encontrado con este tipo de escenario en el que necesito extraer los IDs basándome en esta lógica.

En este ejemplo, deseo extraer la siguiente combinación en el resultado:

  • INCLUIR el resultado si:
    1. la fuente tiene una o más combinaciones de – Raja, Ravi o Sam.

Y

  • EXCLUIR el ID si:
    1. la Fuente tiene una o más combinaciones de – Jane, Jake o Jude.
ID Fuente
1 Raja
1 Ravi
2 Sam
2 Raja
3 Jake
3 Raja
3 Sam
3 Jane
4 Sam
4 Jake
4 Jude

La salida esperada es:

ID
1
2

Esta tabla de origen siempre tendrá más de 1 valor de origen para cada ID.

Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para extraer la combinación deseada, puedes utilizar la siguiente consulta SQL:

    SELECT ID
    FROM table_name 
    WHERE Source IN ('Raja', 'Ravi', 'Sam')
    GROUP BY ID
    HAVING COUNT(DISTINCT Source) >= 1
    AND COUNT(DISTINCT CASE WHEN Source IN ('Jane', 'Jake', 'Jude') THEN Source END) = 0;
    

    Esta consulta selecciona los IDs de la tabla donde la fuente es Raja, Ravi o Sam, los agrupa por sus IDs y aplica la cláusula HAVING para seleccionar solo aquellos IDs donde al menos una de las fuentes es Raja, Ravi o Sam, y ninguna de las fuentes es Jane, Jake o Jude.

    ¡Espero que esto ayude!

Comments are closed.