Как мне написать запрос для сгруппированного временного ряда со второй группировкой (страна)? - PullRequest
0 голосов
/ 22 марта 2012

У меня есть пользовательская таблица с

id ... created_at (datetime) country_code ...

, и я хотел бы сделать запрос, который бы выводил мне коды стран, сгруппированные по группам времени:

Rows = US, UK, MX, ZH, ...
Columns = 2009-01, 2009-02, 2009-03, etc
cells =  the count of cumulate e.g. UK signups before 2010-08-01

я получилдо

SELECT country_code, count(created_at)
FROM users
WHERE date(created_at) < "2010-08-01"
GROUP BY country_code
ORDER BY country_code ASC;

, но это дает мне снимок только за один отрезок времени.как сделать так, чтобы в нем было много столбцов

date(created_at) < 2010-08
date(created_at) < 2010-09
date(created_at) < 2010-10

все в одном запросе?


ИСПОЛЬЗУЯ MYSQL


АКТУАЛЬНЫЕ ДАННЫЕ

UserTable:

id | country_code | created_at
1  | US           | 2010-03-04 12:34:56
2  | MX           | 2010-04-05 07:08:09
3  | DE           | 2010-10-12 12:34:56
4  | US           | 2011-01-04 12:34:56
5  | DE           | 2011-01-04 12:34:56
6  | DE           | 2011-01-30 12:34:56

Желаемый результат

cc | 2010-03 | 2010-04 | 2010-10 | 2011-01 |
US |       1 |       1 |       1 |       2 |
MX |       0 |       1 |       1 |       1 | 
DE |       0 |       0 |       1 |       3 |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...