如何利用 mysql 分组展示查询结果
在 mysql 中,要将查询结果按多个字段分组并行展示,可以采用以下方法:
首先,先按指定的字段对数据进行分组,例如按 name 和 start_date 分组:
select `name`, start_date from `task` group by `name`, start_date;
登录后复制
然后,对于每个分组,分别计算每个组内每个字段的聚合值,例如计算每个分组中的 num 字段的总和:
select `name`, start_date, sum(`num`) as `sum_num` from `task` group by `name`, start_date;
登录后复制
再进一步,我们可以根据需要创造额外的字段来展示想要的结果。例如,我们可以根据 start_date 字段将数据分为 “上半年” 和 “下半年”:
select `name`, start_date, sum(`num`) as `sum_num`, if(month(start_date) >= 7, '下半年', '上半年') as `cycle` from `task` group by `name`, `cycle`;
登录后复制
最后,我们可以使用 case 语句或 ifnull 函数来处理空值,并将结果展示成需要的格式:
SELECT `name`, '上半年' AS `start_date`, SUM(`num`) AS `shang_sum`, IFNULL(t2.`xia_sum`,0) AS `xia_sum` FROM `task` t LEFT JOIN ( SELECT `name`, SUM(`num`) AS `xia_sum` FROM `task` WHERE MONTH(start_date) = 7 GROUP BY `name`;
登录后复制
© 版权声明
文章版权归作者所有,未经允许请勿转载。
【小浪云服务商 - 服务器12元起 - 挂机宝5元起】
THE END
暂无评论内容