Select 在 SQL 中将元组加在一起时不同

Select Distinct whilst adding tuples together in SQL

我有一个 table,其中包含针对具有重复条目的密钥的随机数据。我正在寻找删除重复项(在关系代数中称为投影),而不是丢弃附加数据,而是将它们加在一起。例如:

orderID    cost
 1          5
 1          2
 1          10
 2          3
 2          3
 3          15

应在对每个 orderID 的值求和时从 orderID 中删除重复项:

orderID    cost
 1          17       (5 + 2 + 10)
 2          6
 3          15

我的假设是我会以某种方式使用 SELECT DISTINCT,但我不知道该怎么做。我知道 GROUP BY 可能可以做一些事情,但我不确定。

您可以使用 group by 子句为您要分组的列的每个不同值获取一行 - 在本例中为 orderId。您可以应用聚合函数来获取您未分组的列的结果 - sum,在本例中为:

SELECT   orderId, SUM(cost)
FROM     mytable
GROUP BY orderId

这是一个非常基本的聚合:

SELECT orderId, SUM(cost) AS cost
FROM MyTable
GROUP BY orderId

这表示,对于每个 "orderId" 分组,将 "cost" 字段和 return 每组一个值相加。