2013-07-01 26 views
0

SQL noob在这里带有noob问题。我有这样一个表:按MySQL中的2列和总计2个其他列

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 

我认为它很可能是更快地通过第一查询词,然后组总和,但我不知道。

谢谢大家提前!

+0

,什么是你试图做实现这一目标? –

+0

你的主键是什么? – Strawberry

回答

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

+0

+1为一个很好的答案,尤其是与小提琴示例 –

+0

非常感谢你,这工作 – user1452494

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