The association between the involved tables per link-table might not be sufficient to create the wanted view.
Beside this your aggr() has no outer aggregation and is therefore not really an expression else more a calculated dimension. There are scenarios in which it may work especially by an additionally use of TOTAL and/or NODISTINCT but it's not really quite right. The classical aggr() should more look like:
Further are you sure that you need an aggr() at all? And then with so many dimensions? Aggr() should be only used if there are no other ways to calculated the wanted results and if you could accept the performance-impact (they could be very heavy especially by large datasets and link-table approaches and the use of many dimensions).