sql – 为什么我们需要GROUP BY与集合函数?
发布时间:2020-12-12 16:35:58 所属栏目:MsSql教程 来源:网络整理
导读:我看到一个例子,其中列出了一张名单(表)的雇员,他们各自的月薪.我做了一笔工资,在ouptput看到完全相同的表!这很奇怪 这是需要做的 – 我们必须找出我们本月支付的员工工资多少钱.为此,我们需要如图所示在数据库中总结其工资金额: SELECT EmployeeID,SUM (Mo
我看到一个例子,其中列出了一张名单(表)的雇员,他们各自的月薪.我做了一笔工资,在ouptput看到完全相同的表!这很奇怪
这是需要做的 – 我们必须找出我们本月支付的员工工资多少钱.为此,我们需要如图所示在数据库中总结其工资金额: SELECT EmployeeID,SUM (MonthlySalary) FROM Employee GROUP BY EmpID 我知道如果在上面的代码中不使用group by,我会收到一个错误.这是我不明白的 – 我们从雇员表中选择employeeid. SUM()被告知必须从Employee表中添加MonthlySalary列.所以,它应该直接去添加这些数字,而不是分组,然后添加它们. 这是一个人怎么做 – 看员工表,并添加所有的数字.为什么他会把麻烦分组,然后把它们加起来呢? 解决方法为了解释,如果您将GROUP BY视为“for each”,可能会更容易.查询如下:SELECT empid,SUM (MonthlySalary) FROM Employee GROUP BY EmpID 在说: “给我每个帝国的月薪的总和” 所以如果你的桌子看起来像这样: +-----+------------+ |empid|MontlySalary| +-----+------------+ |1 |200 | +-----+------------+ |2 |300 | +-----+------------+ 结果: +-+---+ |1|200| +-+---+ |2|300| +-+---+ 总和似乎不会做任何事情,因为一个数字的总和是这个数字.另一方面,如果看起来像这样: +-----+------------+ |empid|MontlySalary| +-----+------------+ |1 |200 | +-----+------------+ |1 |300 | +-----+------------+ |2 |300 | +-----+------------+ 结果: +-+---+ |1|500| +-+---+ |2|300| +-+---+ 那么就是因为有两个empid 1相加在一起.不知道这个解释是否有所帮助,但我希望它能使事情变得更清楚一些. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |