MYSQL具有唯一结果的列的求和

MYSQL具有唯一结果的列的求和,mysql,sql,group-by,sum,Mysql,Sql,Group By,Sum,我有一张多对多的桌子 +----------+-----------+-----------+ | p | t | weight | +----------+-----------+-----------+ | 1 | bob | 40 | +----------+-----------+-----------+ | 2 | sue | 24 | +----------+-----

我有一张多对多的桌子

+----------+-----------+-----------+
|   p      |    t      |   weight  |
+----------+-----------+-----------+
|   1      |   bob     |    40     |
+----------+-----------+-----------+
|   2      |   sue     |    24     |
+----------+-----------+-----------+
|   3      |   bob     |    90     |
+----------+-----------+-----------+
|   4      |   joe     |    55     |
+----------+-----------+-----------+
|   5      |   bob     |    33     |
+----------+-----------+-----------+
我想查询t值,其中p在(1,2,4,5)中,同时求和t的每个值的权重

此查询:
“选择t,总和(权重)作为从p_到p_t的方向,其中p位于(1,2,4,5)”仅将所有总和添加到选定的第一个“t”中,例如

+-----------+-----------+
|    t      |   weight  |
+-----------+-----------+
|   bob     |   152     |
+-----------+-----------+
我想要的是:

+-----------+-----------+
|    t      |   weight  |
+-----------+-----------+
|   bob     |   97      |
+-----------+-----------+
|   joe     |   55      |
+-----------+-----------+

想法

只需在t上添加一个
groupby
子句即可

SELECT 
 t, 
 SUM(weight) AS sWeight 
FROM p_to_t 
WHERE p IN(1,2,4,5)
GROUP BY t
顺便说一下,您还可以在in子句中使用这些值获取Sue


对于Bob来说不是
97
,因为
40+33
通常是
73

只需在t上添加一个
GROUP BY
子句即可

SELECT 
 t, 
 SUM(weight) AS sWeight 
FROM p_to_t 
WHERE p IN(1,2,4,5)
GROUP BY t
SELECT t, SUM(weight) AS sWeight FROM p_to_t WHERE p IN(1,2,4,5) GROUP BY t
顺便说一下,您还可以在in子句中使用这些值获取Sue

对于Bob来说不是
97
,因为
40+33
通常是
73

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


是的,您可以在实际查询中仅添加Group by。然后您将得到以下结果

SELECT t, SUM(weight) AS sWeight 
 FROM p_to_t 
WHERE p IN(1,2,4,5)
Group by t;

+-----------+-----------+
|    t      |   weight  |
+-----------+-----------+
|   bob     |   73      |
+-----------+-----------+
|   joe     |   55      |
+-----------+-----------+
|   sue     |   24      |
+-----------+-----------+

是的,您可以在实际查询中仅添加分组依据。然后您将得到以下结果

SELECT t, SUM(weight) AS sWeight 
 FROM p_to_t 
WHERE p IN(1,2,4,5)
Group by t;

+-----------+-----------+
|    t      |   weight  |
+-----------+-----------+
|   bob     |   73      |
+-----------+-----------+
|   joe     |   55      |
+-----------+-----------+
|   sue     |   24      |
+-----------+-----------+

太好了,谢谢。是的,我忘记了苏,把她的观点加在了鲍勃身上。对不起,苏。@HowardZoopalopa苏会原谅的。太好了,谢谢。是的,我忘记了苏,把她的观点加在了鲍勃身上。对不起,苏。@HowardZoopalopa苏会原谅的。