Consulta SQL com avg e group by

Eu tenho alguns problemas em escrever uma consulta SQL para o MySQL. Eu tenho uma tabela com a seguinte estrutura:

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 |

Eu quero criar uma consulta que extrai as seguintes informações da tabela:

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

O resultado da consulta deve ser assim:

+------------+---------+---------+---------+---------+---------+---------+---------+
| 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       |
+------------+---------+---------+---------+---------+---------+---------+---------+

com mais linhas para cada 'id' único, é claro.

Eu já tentei algumas consultas como

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

Isso retorna o resultado correto, mas eu tenho que expandi-lo com os resultados para os outros valores possíveis de 'passar' (até 7)

Eu tentei usar um SELECT aninhado dentro do AVG, mas isso não funcionou porque eu não descobri como limitá-lo corretamente ao 'id' atual.

Eu criei Views para representar o resultado de cada consulta para 'pass' = 1, 'pass' = 2, etc. Mas para a maioria dos ids o valor mais alto para 'pass' é 5. Ao usar consultas de JOIN para obter o resultado final de as visualizações que recebi um conjunto de resultados vazio, porque algumas das Visualizações estão vazias / não têm valores para um 'id' específico.

Alguma ideia?

questionAnswers(2)

yourAnswerToTheQuestion