在MySQL中分组2列和其他2列

时间:2013-07-01 21:11:18

标签: mysql sql

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

我认为首先查询单词然后分组并加总,可能会更快,但我不知道。

提前谢谢大家!

3 个答案:

答案 0 :(得分: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

请参阅小提琴here

答案 1 :(得分: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

答案 2 :(得分:0)

SELECT ID, word, SUM(num_pos), SUM(num_neg)
FROM Sometable
GROUP BY ID, word