0

SQL noob 这里有一个菜鸟问题。我有一张这样的桌子:

ID   word num_pos num_neg
34   car  1       0
34   car  1       0
100  bus  0       1
123  car  0       1
34   car  0       1
100  bus  1       0
123  bus  0       1
123  car  1       0

我想要的是一个表,它将所有唯一 ID 和单词分组并将 num_pos 和 num_neg 列相加以获得以下输出:

ID   word num_pos num_neg
34   car  2       1
100  bus  1       1
123  car  1       1
123  bus  0       1

另外,我想按单词过滤,例如“汽车”这个词,我需要返回下表:

ID   word num_pos num_neg
34   car  2       1
123  car  1       1

我认为先查询单词,然后分组和求和可能会更快,但我不知道。

谢谢大家!

4

3 回答 3

1

您只需要对 ID 和 word 使用 GROUP BY 子句,以及两个 SUM 聚合函数:

SELECT ID, word, SUM(num_pos) sum_npos, SUM(num_neg) sum_nneg
FROM yourtable
GROUP BY ID, word

在此处查看小提琴。

于 2013-07-01T21:13:46.763 回答
0

Touo 必须阅读GROUP BY (Aggregate) Functions

SELECT ID, word, SUM(num_pos) num_pos, SUM(num_neg) num_neg 
FROM tbl
GROUP BY ID, word
于 2013-07-01T21:14:02.387 回答
0
SELECT ID, word, SUM(num_pos), SUM(num_neg)
FROM Sometable
GROUP BY ID, word
于 2013-07-01T21:14:42.330 回答