Estado todos los recuentos

Tengo una tabla como la siguiente (MSSql)

Name  Status
----  -------
kmk   Success
kmk   Success
mvk   Fail
per   Success
Per   Fail
mvk   Fail

Necesito la consulta que da resultado como a continuación

Name Status  Count
---- ------- -----
kmk  Success 2
kmk  Fail    0
mvk  Success 0
mvk  Fail    2
Per  Success 1
Per  Fail    1

lo intenté con group by pero obtuve un resultado como el siguiente Mi consulta es

(Select Name,[Status],COUNT([Status]) As Count From Checking group by [Status],Name)

Name Status  Count
---- ------- -----
kmk  Success 2
mvk  Fail    2
Per  Success 1
Per  Fail    1

Lo intenté de muchas maneras, ¿puedes darme la consulta?

preguntado el 31 de julio de 12 a las 11:07

Debería familiarizarse con las cláusulas GROUP BY y la función COUNT. -

¿Qué has probado? Muestra tu consulta. Vuelva a escribir su pregunta para tener una mejor comprensión de la estructura de su tabla:

Intenté con group by pero obtuve un resultado como el siguiente Nombre Estado Res kmk Success 2 mvk Fail 2 mvk Success 1 Per Fail 1 per Success 1 -

Intente hacer una combinación externa con una tabla que contenga los dos estados ("Éxito", "Fallo") y use su conteo/grupo tal como lo hizo. -

O si nada más funciona, pruebe un producto cartesiano de nombres únicos con una tabla de 2 filas con sus estados. Luego, a la izquierda, une este producto cartesiano con tu checking tabla para obtener el conteo. -

1 Respuestas

Puedes intentar lo siguiente. Funciona con sqlite3 y, dependiendo de su motor SQL, su kilometraje puede variar:

select
  name,
  "Success" as status,
  sum(case when status = "Success" then 1 else 0 end) as count
from checking group by name
union
select
  name,
  "Fail" as status,
  sum (case when status = "Fail" then 1 else 0 end) as count
from checking group by name;

Resultado con SQLite3:

kmk|Fail|0
kmk|Success|2
mvk|Fail|2
mvk|Success|0
per|Fail|1
per|Success|1

Respondido 31 Jul 12, 22:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.