【发布时间】:2017-12-09 21:14:03
【问题描述】:
我有一个表,其中包含针对具有重复条目的键的随机数据。我正在寻找删除重复项(在关系代数中称为投影),而不是丢弃附加的数据,而是将它们加在一起。例如:
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 可能会做一些事情,但我不确定。
【问题讨论】:
-
关系代数中没有重复的行。您可以想象通过创建一个看起来像它的非关系然后删除列然后消除重复行然后创建一个看起来像这样的关系来实现对关系的投影。但这是一个涉及非关系的程序。 SQL 表不是关系。 SQL 不能很好地体现关系概念。
-
在考虑提问之前请先进行研究。这里对 GROUP BY 的任何介绍都会告诉你如何做到这一点。请参阅How to Ask 和向下投票箭头鼠标悬停文本。还点击谷歌搜索“stackexchange 作业”。例如my 1st hit after your question when googling your title 就是这个问题的答案。
标签: mysql sql database relational-algebra