SQL noob这里有一个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


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

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


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

谢谢大家!

最佳答案

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

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


请参阅小提琴here

关于mysql - 按2列分组,并对MySQL中的其他2列求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17413784/

10-13 22:21