巧用子查询实现分组并行展示
想要实现将查询结果分组并行展示,可以使用子查询。具体而言,我们可以通过以下步骤实现:
修改后的 sql 查询如下:
SELECTt.name, start_date, SUM( t.num ) AS shang_sum, IFNULL(t2.xia_sum,0) FROM `task` t LEFT JOIN ( SELECT NAME, SUM( num ) xia_sum FROM task WHERE MONTH ( start_date ) < 7 GROUP BY `name` ) t2 ON t2.NAME = t.NAME WHERE MONTH ( start_date ) >= 7 GROUP BY `name`
执行此查询,将输出以下结果:
| name | start_date | shang_sum | xia_sum |
|---|---|---|---|
| ceshi | 上半年 | 3 | 1 |
| sss | 下半年 | 0 | 2 |