我有一个信用卡交易的 MySQL 数据集:
create table trans (
transdate date,
card_id int
);
我想知道:
1. how many cards were used to make at least 1 transaction, per month
2. how many cards were used to make at least 5 transactions, per month
3. how many cards were used to make at least 10 transactions, per month
4. how many cards were used to make at least 20 transactions, per month
etc...
由于组重叠,因此条件聚合似乎是一种更好的方法:
select sum(cnt >= 1) as trans_1,
sum(cnt >= 5) as trans_5,
sum(cnt >= 10) as trans_10,
sum(cnt >= 20) as trans_20
from (select card_id, count(*) as cnt
from trans
group by card_id
) d;
问题是上面总共产生了一个结果集。我想要每个月的结果集:
year | month | trans_1 | trans_5 | trans_10 | trans_20 | etc
2015 | 1 | 1 | 1 | 0 | 0 |
2015 | 2 |
2015 | 3 |
我不知道如何在这个数据集中按月分组。