Everything in the database has a timestamp or can be selected in a range. Run the report based on a desired date set, and data is presented to you. Run it through a count, and you have a total. Process it, and you have a sum.
Gizmo has presented
an example of this in his link. The data is live data from the moment you click the link, that goes back to day-one of his forum installation, and its presented in a basic report. If you choose to process multiple sets, you could graph or chart it.
edit: You could run those queries in a portal box, and have the data refresh once a week, if you dont have anything that will need more frequent updates. The cpu/db time to process those numbers is nothing.