具有独特结果的MYSQL列的总和

How*_*opa 0 mysql sql group-by sum

我有很多桌子p_to_t

+----------+-----------+-----------+
|   p      |    t      |   weight  |
+----------+-----------+-----------+
|   1      |   bob     |    40     |
+----------+-----------+-----------+
|   2      |   sue     |    24     |
+----------+-----------+-----------+
|   3      |   bob     |    90     |
+----------+-----------+-----------+
|   4      |   joe     |    55     |
+----------+-----------+-----------+
|   5      |   bob     |    33     |
+----------+-----------+-----------+
Run Code Online (Sandbox Code Playgroud)

我想查询值t WHERE p IN(1,2,4,5),同时将t的每个值的权重相加.

此查询:"SELECT t, SUM(weight) AS sWeight FROM p_to_t WHERE p IN(1,2,4,5)";只是将所有总和添加到所选的第一个"t"中;

+-----------+-----------+
|    t      |   weight  |
+-----------+-----------+
|   bob     |   152     |
+-----------+-----------+
Run Code Online (Sandbox Code Playgroud)

当我想要的是:

+-----------+-----------+
|    t      |   weight  |
+-----------+-----------+
|   bob     |   97      |
+-----------+-----------+
|   joe     |   55      |
+-----------+-----------+
Run Code Online (Sandbox Code Playgroud)

思考?

Rap*_*aus 5

只需GROUP BY在t上添加一个条款

SELECT 
 t, 
 SUM(weight) AS sWeight 
FROM p_to_t 
WHERE p IN(1,2,4,5)
GROUP BY t
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你也会在IN子句中得到这些值的Sue ......

而不是97鲍勃,因为40 + 33更多的时候是73