Reputation: 433
I'm struggling with a problem I hope some of you might be able to help me with.
I got the following table structure for a table which contains lots of actions. I then would like to make a php script which generates some statistics.
+---------------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| MemberID | int(11) | NO | | NULL | |
| MemberNumber | int(11) | NO | | NULL | |
| Status | varchar(20) | NO | | | |
| ClubID | int(11) | NO | | NULL | |
| Clubtype | varchar(5) | NO | | NULL | |
| Time | timestamp | NO | | CURRENT_TIMESTAMP | |
| Gender | varchar(10) | NO | | | |
+---------------+-------------+------+-----+-------------------+----------------+
I'm wondering if it's best to let php or mysql manipulate the data.
I would like to get some stats based on Time
e.g year,month,week
and some stats based on Clubtype
e.g FK,UK
and finally some stats based on Gender
e.g Male,Woman
. So is it best to work with count()
in the mysql queries or is it better to get all the data and the let php generate the stats.
I hope this makes sense. Thx for the help :)
EDIT: To explain my plan further. I would like to generate for every year
grouped by month
and for each month I want to get the
count(Status)
total
count(Status)
where Clubtype = $value
count(Status)
where Gender = $value
furthermore for each month i want to get the stats grouped by week
and finally I want to get the stats for each week grouped by day
. These stats makes use of same count
as above.
I hope this gives an better idea of what i want to do.
Upvotes: 3
Views: 2883
Reputation: 19251
Use MySQL. It will be able to calculate and organize things much faster due to indexing. You will have to make heavy use of GROUP BY and the math functions.
Upvotes: 5