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)
思考?
只需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
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |