gpt4 book ai didi

sql - 为什么我们需要带有聚合函数的 GROUP BY?

转载 作者:行者123 更新时间:2023-12-02 14:50:58 25 4
gpt4 key购买 nike

我看到一个例子,其中有一个员工列表(表)及其各自的月薪。我对工资进行了汇总,并在输出中看到了完全相同的表格。这很奇怪。

这是必须做的 - 我们必须找出本月我们支付多少员工工资。为此,我们需要在数据库中对他们的工资金额进行求和,如下所示:

SELECT EmployeeID, SUM (MonthlySalary) 
FROM Employee
GROUP BY EmpID

我知道如果我在上面的代码中不使用GROUP BY,就会收到错误。这是我不明白的地方。

我们从 Employee 表中选择 EmployeeID。 SUM() 被告知必须从 Employee 表添加 MonthlySalary 列。因此,它应该直接将这些数字相加,而不是先将它们分组然后相加。

这就是一个人会做的事情 - 查看员工表并将所有数字相加。他们为什么要费尽心思将它们分组然后将它们相加?

最佳答案

为了便于解释,如果您将 GROUP BY 视为“对于每个”,可能会更容易。查询如下:

SELECT empid, SUM (MonthlySalary) 
FROM Employee
GROUP BY EmpID

意思是:

“给我每个 empid 的月薪总和”

如果您的表格如下所示:

+-----+------------+
|empid|MontlySalary|
+-----+------------+
|1 |200 |
+-----+------------+
|2 |300 |
+-----+------------+

结果:

+-+---+
|1|200|
+-+---+
|2|300|
+-+---+

Sum 似乎不会执行任何操作,因为一个数字的总和就是该数字。另一方面,如果它看起来像这样:

+-----+------------+
|empid|MontlySalary|
+-----+------------+
|1 |200 |
+-----+------------+
|1 |300 |
+-----+------------+
|2 |300 |
+-----+------------+

结果:

+-+---+
|1|500|
+-+---+
|2|300|
+-+---+

那就会了,因为有两个 empid 1 需要相加。不确定这个解释是否有帮助,但我希望它能让事情变得更清楚。

关于sql - 为什么我们需要带有聚合函数的 GROUP BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com