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.
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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP