Tengo una consulta que cuenta la cantidad de registros en una tabla que contiene una cantidad de tickets de reparación y el resultado es la cantidad de tickets de reparación por empresa que se han completado. Ejemplo; Código de empresa | Nombre de la empresa | ConteoDeTickets
SELECT
Incident.CompanyCode, Count(Incident.CompanyCode) AS IncCount
FROM
Incident
GROUP BY
Incident.CompanyCode, Incident.IncidentType, Incident.IncidentClosed
HAVING
(((Incident.IncidentType)="On - Site") AND
((Incident.IncidentClosed)=True));
Ahora, lo que me cuesta entender es esto. Cada uno de los registros que se cuentan tiene un campo para marcar el ticket como si cumpliera con un SLA. El campo es un campo de texto con una "Y" o una "N".
Lo que estoy tratando de hacer es contar el número de registros dentro de la consulta anterior, que cumplen con los criterios de "Y" o "N", y luego dividir ese resultado por el recuento de la consulta principal para obtener un porcentaje de tickets de reparación que coincidan con los criterios. Entonces, de x número de tickets de reparación para la empresa xyz, el x% ha cumplido el SLA.
Sé que esto probablemente implicaría una subconsulta, pero no estoy seguro de cómo codificarla ni dónde colocarla.
Me gustaría tener el resultado como parte de la misma tabla de resultados, es decir, Código de empresa | Nombre de la empresa | ConteoDeTickets | % Cumplido SLA
No sé si la solución sería sencilla o no, pero llevo un tiempo trabajando en esto y simplemente no lo veo.
Cualquier ayuda sería muy apreciada.
Gracias por tomarse el tiempo de revisar esta publicación y por cualquier ayuda brindada.
Greg
Respuesta1
SELECT
CompanyName,
CompanyCode,
Count(*),
Sum(iif(MetSLA, 1, 0))/Count(*) * 100
FROM
Incident
WHERE
IncidentType = "On - Site"
AND IncidentClosed = Yes
GROUP BY
CompanyName, CompanyCode;
Explicación: la Sum(iif(MetSLA, 1, 0))
expresión cuenta efectivamente las filas donde está establecido el indicador MetSLA (verdadero/sí). Sum
se aplica como una función agregada después de agrupar las filas (como Count
está). Por lo tanto, obtiene un recuento de filas MetSLA=yes como porcentaje de filas para esa empresa (ya que la agrupación es por empresa).