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
我认为首先查询单词然后分组并加总,可能会更快,但我不知道。
提前谢谢大家!
答案 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