Consulta SQL con avg y agrupar por

Tengo algunos problemas al escribir una consulta SQL para MySQL. Tengo una mesa con la siguiente estructura:

mysql> select id, pass, val from data_r1 limit 10;
+------------+--------------+----------------+
| id         | pass         | val            |
+------------+--------------+----------------+
| DA02959106 | 5.0000000000 |  44.4007000000 |
| 08A5969201 | 1.0000000000 | 182.4100000000 |
| 08A5969201 | 2.0000000000 | 138.7880000000 |
| DA02882103 | 5.0000000000 |  44.7265000000 |
| DA02959106 | 1.0000000000 | 186.1470000000 |
| DA02959106 | 2.0000000000 | 148.2660000000 |
| DA02959106 | 3.0000000000 | 111.9050000000 |
| DA02959106 | 4.0000000000 |  76.1485000000 |
| DA02959106 | 5.0000000000 |  44.4007000000 |
| DA02959106 | 4.0000000000 |  76.6485000000 |

Quiero crear una consulta que extraiga la siguiente información de la tabla:

id, AVG of 'val' for 'pass' = 1, AVG of 'val' for 'pass' = 2, etc

El resultado de la consulta debe verse así:

+------------+---------+---------+---------+---------+---------+---------+---------+
| id         | val_1   | val_2   | val_3   | val_4   | val_5   | val_6   | val_7   |
+------------+---------+---------+---------+---------+---------+---------+---------+
| DA02959106 | 186.147 | 148.266 | 111.905 | 76.3985 | 44.4007 | 0       | 0       |
+------------+---------+---------+---------+---------+---------+---------+---------+

con más filas para cada 'id' único, por supuesto.

Ya probé algunas consultas como

SELECT id, pass, AVG(val) AS val_1 FROM data_r1 WHERE pass = 1 GROUP BY id;

Esto devuelve el resultado correcto, pero tengo que expandirlo con los resultados para los otros valores posibles de 'pasar' (hasta 7)

Intenté usar un SELECT anidado dentro de AVG, pero esto no funcionó porque no me di cuenta de cómo limitarlo correctamente al 'id' actual.

Luego creé Vistas para representar el resultado de cada consulta para 'pass' = 1, 'pass' = 2, etc. Pero para la mayoría de los id. las vistas recibí un conjunto de resultados vacío, porque algunas de las Vistas están vacías / no tienen valores para un 'id' específico.

¿Algunas ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta