Zapytanie SQL z avg i group by

Mam problemy z napisaniem zapytania SQL dla MySQL. Mam tabelę o następującej strukturze:

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 |

Chcę utworzyć zapytanie, które wyodrębnia z tabeli następujące informacje:

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

Wynik zapytania powinien wyglądać następująco:

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

oczywiście z większą liczbą wierszy dla każdego unikalnego „id”.

Próbowałem już takich zapytań

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

Zwraca to poprawny wynik, ale muszę go rozszerzyć o wyniki dla innych możliwych wartości „pass” (do 7)

Próbowałem użyć zagnieżdżonego SELECT w AVG, ale to nie zadziałało, ponieważ nie udało mi się poprawnie ograniczyć go do bieżącego „id”.

Następnie stworzyłem widoki reprezentujące wynik każdego zapytania dla „pass” = 1, „pass” = 2 itd. Jednak dla większości identyfikatorów najwyższą wartością „pass” jest 5. Podczas używania zapytań JOIN, aby uzyskać końcowy wynik z widoki otrzymałem pusty zestaw wyników, ponieważ niektóre widoki są puste / nie mają wartości dla określonego „id”.

Jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion