ok, i've tested this a little bit and it seems working
make a new smartlist, and in the import/export box, paste this
[=save(0,var_number_of_tracks[album artist (auto)][album])1]=1 [=save(0,var_plays_sum[album artist (auto)][album])1]=1 [=save(math(1+load(var_number_of_tracks[album artist (auto)][album])),var_number_of_tracks[album artist (auto)][album])1]=1 [=save(math([Number Plays]+load(var_plays_sum[album artist (auto)][album])),var_plays_sum[album artist (auto)][album])1]=1 [=save(math(load(var_plays_sum[album artist (auto)][album]) / load(var_number_of_tracks[album artist (auto)][album])),var_album_plays[album artist (auto)][album])1]=1 [Media Type]=[Audio] ~sort=[Actors],[Number Plays]-d,[Media Type],[Album Artist (auto)],[Album]
now, in the same smartlist, right click any column, and Add Expression Column. in the editor that will come up, paste this for an "average times the album has been played as a whole " (second expression column in screenshot)
load(var_album_plays[album artist (auto)][album])
or this for "number of times the album has had any track played from it" (first expression column in screenshot) - basically the sum like you asked for
load(var_plays_sum[album artist (auto)][album])
it seems to be working for me and gives you a good start. you can calculate with these numbers as normal (in custom fields or expression columns), but you must refresh a smartlist when you import new tracks, they don't self refresh.
**note - i use album artist(auto) / album to delineate what is an album. if you have different tags you may need to change that part, as it helps determine what is in fact an album. also you need to have all your tags existing and correct
now, as a really simple example of weighting, make yet another expression column and paste this
=Math([rating] + load(var_album_plays[album artist (auto)][album]) / 10)
which will simply add a decimal weighting factor based on the average number of album plays. you can get as complex as you want here (see the points thread i posted - he went pretty nuts with that one) - just call the load(...) as you would a normal field for calculations.