The rough equivalent is indexed views, as you have already discovered.
The other alternative, like you have already mentioned, is to build this data into a real table (akin to datawarehousing), but this only really works if the changes to the base data can be timed, with a fairly fixed frequency - trying to do this with constant or erratically changing data is impossible.