遇到一个需求是将表内的数据按日期分组聚合,不过其中有个类型字段,需要同时将类型的值也做个分组聚合。请问应该如何写sql最优:
数据表结构
create table record
(
id int unsigned auto_increment
primary key,
amount int(10) default 0 not null comment '记录金额',
type tinyint(1) not null comment '记录类型 1 支出 2收入 3其他',
create_time datetime null
)
通过sql可以达到按天的分组,但是如何将type也按照每天分组做个统计
select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(amount) amount,type from record group by DATE_FORMAT(create_time,'%Y-%m-%d')
期望查询出来的每行结果为如下字段:
day amount type_1_amount type_2_amount type_3_amount
请问这样效果应该如何实现?
我猜你
type_1_amount
、type_2_amount
分别表示的是每日支出和收入总额,那SQL就这样: