SQL: cuente el número de ocurrencias que ocurren en la columna de salida y calcule algún porcentaje basado en las ocurrencias

Mi consulta SQL recupera la lista de verificación de corrección de errores para un firmware, por ejemplo. def-456 es un ticket que me pide que pruebe la prueba de firmware en un producto. def-456 tiene varias sub-tareas donde se registran los resultados. Los resultados se registran como: id: abc-123, abc-124, abc-125, etc. (como se muestra en la tabla a continuación). Estos identificadores correspondientes tienen el resultado de "pasar" o "fallar". Necesito calcular dos valores ----> 1. Número de intentos: en el siguiente ejemplo, el número de intentos sería 3/5, hay 3 pases y 2 fallas (es decir, pases / pases + fallas), aquí puedo usar la cuenta () el método, sin embargo, no sabe cómo agregar "/ 5" y 2. Tasa de éxito del primer intento: en el siguiente ejemplo, abc-123 falló, sin embargo abc-124 pasó, abc-125 falló, sin embargo abc-126 aprobó y abc-127 aprobado sin ninguna falla, significa que mi tasa de éxito es: 1 de 3 (es decir, 1/3), ¿cómo puedo mostrar estos valores en sql? Esto es un poco complicado y no puedo encontrar la lógica para esto.

Aquí están mis datos para def-456:

    value | id| 
    --------------
    fail | abc-123  
    pass | abc-124   
    fail | abc-125   
    pass | abc-126   
    pass | abc-127  

y aquí está o / p estoy tratando de mostrar:

id   |   value | attempts| %for attempts  | 1st attempt
----------------------------------------------------
abc-123    fail |   3/5  | 60%              | 1/3
abc-124    pass |   3/5  | 60%              | 1/3
abc-125    fail |   3/5  | 60%              | 1/3
abc-126    pass |   3/5  | 60%              | 1/3
abc-127    pass |   3/5  | 60%              | 1/3

Respuestas a la pregunta(1)

Su respuesta a la pregunta