我来写BUG 2021-10-18 21:50 采纳率: 100%
浏览 222
已结题

您查询不包含作为聚合函数一部分的特定表达式

img

我想连接两个查询然后按年龄分组
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 又只是拼接而已

img


我该怎么搞啊?

  • 写回答

2条回答 默认 最新

  • CSDN专家-文盲老顾 2021-10-19 09:18
    关注

    先把数据集union之后,在分组计算,不知道你是否是需要这样的结果

    
    SELECT 年龄, count(身份证号) AS 总人数
        , sum(switch(性别='女',1,性别='男',0) ) AS 女
        , sum(switch(性别='男',1,性别='女',0) ) ASfrom (
        select 年龄,身份证号,性别 from 21本科
        union all select 年龄,身份证号,性别 from 本科老生
    ) a
    GROUP BY 年龄
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月28日
  • 已采纳回答 10月20日
  • 创建了问题 10月18日