Lilwizz, you can calculate frequency in a loop. Set $count = 0 and at the end of each loop increment count by one : $count++. In the middle of the loop you'll need to execute a query counting the number of rows where age = $count. You can of course limit the loop to 100 as I doubt you'll ever have anyone over that age? Store the result of each loop in an array and then you'll be able to count frequency. Make sense?
For range you just need to retrieve the lowest and highest value in the age column.
I don't know what you mean by variation..?
The only reason I'm not giving you the code straight up is that you've shown no evidence of trying to figure it out for yourself. Post some code as your attempt and we can help you make improvements and get it working.
The problem with 'age' columns is that they 'age'. Haw haw. Seriously, they're out of date as soon as you insert them. You should have a date of birth and calculate the age from that when required.
The functionality you require is possible. However, you may find it easier to process in php. So, collect all entries into an array and work off that.
$data is hard-coded here, but you'd get this from your DB though...
$data = array();
$result = mysql_query("SELECT ... AS age FROM users");
while($d = mysql_fetch_assoc($result))
$data = $d['age'];
That little bit uses the soon-to-die-a-horrible-death mysql_* functions, just for clarity - aim for mysqli or PDO. You could use different extraction functions here - especially if just retrieving a single column.