首页 > 编程知识 正文

DB2 中SQL分组求和,分组求和法例题

时间:2023-05-05 15:05:20 阅读:177531 作者:1702

SQL集团和亲爱的观众们,大家好,欢迎来到《你的月亮我的心》! xdddc先生最近在工作上遇到了问题。 它类似于Excel的分类汇总,方法是将数据库中的字段分组,插入一行数据,对上面组中的字段进行合计。 这称为“分组合计”。 uno员工编号、名称、brncoBrncd部门baseSalary基本工资必须将不同部门的员工分组。 按工资顺序对各组进行排序,并在该组下添加一行以显示该部门所有人的基本工资之和。 数据库中的数据如下。

select 'uno ',' name ',' brncoBrncd ',' base salary ' fromempunionallselect ' ' as ' uno ',' as 'name ',' brncobrbrarary ' ' brncobrard' sum(baseSalary () as ) baseSalary (from EMP group by ) brncobrncd (brncobrncd ),base salary )的顺序

这次排行榜的关键在于Union all的使用。 不知道使用Union all或union的人请在CSDN上搜索。 我想强调的是在union all或union中使用group by和order by。 这样可以得到我们想要的结果,但还存在一点缺陷。 如果我们列为净利润而不是底薪的话,会有负数。 按此列排序时,我们的摘要行不会正好显示在组的底部。 此时,可以按以下方式改进代码:

选择'1' ' seq '、' uno '、' name '、' brncoBrncd '、' baseSalary '、' base salary ' fromempunionallsect '2' ' seq、' as ' uno、' uno、' bas ' unas、uno、bas ' bas、

有了我们添加的这两个字段,无论基本工资列中有无负数,都可以确保我们的摘要行显示在组的底部。 在画面上显示的时候请不要显示。

注:有关union all或union group by和order by的详细信息,如果第一个select使用order by括在括号中,则只对第一个select的查询结果进行排序,而第二个select语句的order by是整个查询结果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。