我有一个具有多个ID的表,需要查询以返回每个ID的列总和。 Calls_table看起来像这样

EmployeeID    TypeOfCall    InvoiceAmount
John          NC             50
john          NC             100
Joe           NC             76
Joe           NC             50


我有它,所以我现在必须按员工要求

SELECT sum(InvoiceAmount/2) as "Total Calls"
from Calls
where TypeOfCall='NC' and EmployeeID='Derek';


但我希望它能够返回像这样的列表中的所有ID

Total Calls
Joe              100
John             68


我确定我需要使用Distinct参数,但无法弄清楚哪里

最佳答案

您需要使用关键字分组

Select EmployeeID, SUM(InvoiceAmount)
From Calls
Group by EmployeeID


您甚至可以更进一步,按呼叫类型和EmployeeID进行分组,如下所示:

Select EmployeeID, TypeOfCall, SUM(InvoiceAmount)
From Calls
Group by EmployeeID, TypeOfCall


选择的字段必须是聚合函数(求和,计数,平均等),或者在执行此操作时位于“分组依据”中。

关于sql - 具有不同ID的列的总和?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14061901/

10-15 12:42