我想连接两个查询然后按年龄分组
select 年龄 ,总人数 ,女 ,男 from(
SELECT 年龄, count(身份证号) AS 总人数, sum(switch(性别='女',1,性别='男',0) ) AS 女, sum(switch(性别='男',1,性别='女',0) ) AS 男
FROM 21本科
GROUP BY 年龄
union all
SELECT 年龄, count(身份证号) AS 总人数, sum(switch(性别='女',1,性别='男',0) ) AS 女, sum(switch(性别='男',1,性别='女',0) ) AS 男
FROM 本科老生
GROUP BY 年龄)
group by 年龄;
但是不用group by 又只是拼接而已
先把数据集union之后,在分组计算,不知道你是否是需要这样的结果
SELECT 年龄, count(身份证号) AS 总人数
, sum(switch(性别='女',1,性别='男',0) ) AS 女
, sum(switch(性别='男',1,性别='女',0) ) AS 男
from (
select 年龄,身份证号,性别 from 21本科
union all select 年龄,身份证号,性别 from 本科老生
) a
GROUP BY 年龄
GROUP BY 年龄
改为
GROUP BY 年龄,男,女