TransWikia.com

Seleccionar grupos que no cumplan condiciones especificas

Stack Overflow en español Asked by Winebous on November 10, 2021

Estoy intentando obtener todos los grupos y sus contadores que no cumplan una condición especifica, existe forma de hacerlo en una sola query?

Tabla

1    2
A    X
B    Y    
C    Y 
A    Y 
B    Y

Hasta ahora mi query para agrupar todos sería:

SELECT 1,COUNT(1) AS cnt FROM Tabla GROUP BY cnt

En mi lógica si hago un WHERE 2 != X solo se reduciría en 1 el COUNT de la columna 1 y lo que requiero es excluir a todo el grupo A si cuenta aunque sea solo una X en la columna 2.

Gracias por adelantado.

Update:
Pongo mas info para que se pueda entender mejor mi problema:

Tabla:

lvl  info
1   A
2   B
3   A
1   A
2   A
3   A

Al realizar SELECT lvl,COUNT(lvl) AS count FROM table GROUP BY lvl
obtenemos los siguientes resultados:

lvl   count
1       2
2       2
3       2

Lo que quiero hacer es buscar la forma de descartar por completo el grupo que no cumpla una condición especifica, en este hipotetico caso, si info == B descartar todo el grupo al que pertenezca quedando como resultado de la query anterior unicamente:

lvl   count
1       2
3       2

El problema:
Solo he podido lograr que se descarte un solo miembro del grupo que cumpla la condición con la siguiente query SELECT lvl,COUNT(lvl) AS count FROM table WHERE info NOT IN (B) GROUP BY lvl quedando como resultado:

 lvl   count
  1       2
  2       1
  3       2

Espero se pueda entender mejor ahora.

One Answer

Lo puedes resolver con un query anidado asi:

    SELECT lvl,COUNT(lvl) AS count FROM table 
    WHERE lvl not in (SELECT lvl FROM table WHERE info == 'B') GROUP BY lvl

Answered by William Andrés Bernal on November 10, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP