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 每组一个值相加。
我有一个 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 每组一个值相加。