Estado todos los recuentos
Frecuentes
Visto 94 equipos
0
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?
1 Respuestas
2
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 sql or haz tu propia pregunta.
Debería familiarizarse con las cláusulas GROUP BY y la función COUNT. - Jacob
¿Qué has probado? Muestra tu consulta. Vuelva a escribir su pregunta para tener una mejor comprensión de la estructura de su tabla: Yaroslav
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 - kaliyaperumal M
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. - Gerard Yin
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. - Gerard Yin