How to design DB for statistics service? I'm going to create statistics on RoR. I have 3 models: User, Project and Channel. User owns Projects, whereas Projects have many Channels. Now I'm designing all these models using MySQL. 

The goal of the service is to provide user the variation in time of different parameters of each Channel. E.g.: Channel Google Adwords has 1000 show/day, 100 clicks/day and 2 people which came from Google Adwords bought something that day. So I could have just stored all the information in columns, like: Channel "Google Adwords", shows: 1000, clicks: 100, buyings: 2. But I need to make distribution by days, please, give me an advice how to design such database? Maybe I should use another solution, maybe NoSQL?

Upd. 

Input: User daily fills in data about ads from different sources (I call them channels, e.g.: Google Adwords): number of impressions and clicks (later data will be imported automatically usiing API).
Output: Various stats like graphs and CTR of different channels, all channels and so on.
I'd recommend you to make a separate table for each attribute. Like so

table impressions
-channel_id
-date timestamp
-other attributes like ad_id

table clicks
-channel_id
-date timestamp
-ad_id


For every event you just make an insert, to show stats it is also very efficient - it is just index scan with count or aggregate function. 
Also this approach scales well - you can easily shard such tables. Or replace it with nosql solution. For such a task i'd recommend HBase - this datamodel naturally translates in HBase schema, and HBase is very good at range scans.

UPD: I see you updated qustion, so i need to clarify. 
Basic tables which still usefull to store Facts. Over them you can immediately make graphs and reports. If you concern about performance, people usually preaggregate data. So if your people need 5/10/30 minutes resolution, you aggregate into 5/10/30_minute_table for fast reporting.

This batch processing of old data takes time. If it doesn't fit your SLA, modern guys take CEP engines like twitter Storm to analyze and aggregate this table in real time. Or you can just buffer events for a minute, aggregate them and then store. I don't know how RoR fits this role and i don't know your requirements. But i think thats another story.