使用的是oracle数据库,mysql基本上一样
SELECT t.tname,z.A1年,z.A2年,z.A3年 FROM town t LEFT JOIN (
SELECT dr.id,SUM(CASE WHEN dr.years>=1 AND dr.years<=5 THEN 1 ELSE 0 END) A1年,SUM(CASE WHEN dr.years>5 AND dr.years<=10 THEN 1 ELSE 0 END) A2年,SUM(CASE WHEN dr.years>10 AND dr.years<=15 THEN 1 ELSE 0 END) A3年 FROM driver dr GROUP BY dr.id
) z ON t.tid=z.id
表截图:
结果截图: