Dada la tabla foo
:cómo determinar si un valor aparece en un grupo a grupo
Num Letter
------------
1 A
1 B
1 B
2 C
3 A
3 C
3 D
Si hago SELECT * GROUP BY Num
que, por supuesto, obtener algo como esto:
Num Letter
------------
1 A
2 C
3 A
lo que había gustaría a refinar esta es:
Num Has_No_Letter_C
---------------------
1 Yes
2 No
3 No
probablemente hay un simple SELECT IF()
PLU sa ORDER BY
, pero no puedo verla ahora ...
En mi ejemplo del mundo real, la tabla resultante es LEFT JOIN
ed a otra mesa y yo quiero ser capaz de rechazar las entradas No
pero mantener el NULL
s si mi otra tabla bar
tiene una fila Num
= 4.
Gracias ¡tú! El primero funciona Cambié la expresión a 'IF (SUM (Letter = 'C') = COUNT (Letter), 'Yes', 'No')' ya que mi ejemplo de la vida real necesita verificar todas las C, y puedo aplicar eso a hacer funcionar mi consulta completa (También es probable que sea hora de refactorizar y normalizar mis tablas ...) –
@ KenY-N: Para verificar si son * todas * 'C', sería más sencillo buscar cualquier valor que * no * C: 'SUM (Letra <> 'C')'. – eggyal
¡Ahh, por supuesto! –