Scalable table structure for periodically updated stats that get aggregated over time
I'm frankly always nervous about throwing away details.  For that reason I'd try to find a way to keep handy (or at least archive) the most granular data.  That way, if your summarization requirements change, you can always go back to the source data and recalculate appropriate summary statistics.

As to your approach of calculating averages over varying times at various ages, this is a fair practice that would meet the needs of many organizations, to a point.

While it may certainly be true that you don't care about per 30 second periods after a few weeks, let alone one year from now, at what point do you stop increasing the reporting period?  Do you stop at days or do you go to weeks?  (or months? or quarters?)

Once you get past days, you run into issues with doing year over year comparisons, which many organizations rely upon.  I have seen some datawarehouses where there are multiple periods precalculated.  Whether you do this or just pick one "longest period" e.g. days, is a matter of how you trade off quick access and redundant data.

Regarding "How would I organize this into a table?" the best way would be to have starting and ending date/times (down to the second) for the period being represented, along with the average count over that period.  For convenience, you might also include a partitioning attribute that describes the length of the period, e.g. 'm', 'h', 'd', 'w', 'M', 'q', 'y' or whatever makes sense for your summaries.