所以我有一个这样的表:
id mod n1 n2 n3
1 1 1 1
1 2 2
1 3 3
2 1 1
2 2 2
3 1 1
Run Code Online (Sandbox Code Playgroud)
我想将特定id的所有行的每个值总结为列调用总数,但我不想将id组合在一起,因为它们具有不同的mod编号.我想要一个这样的结果:
id mod total
1 1 7
1 2 7
1 3 7
2 1 3
2 2 3
3 1 1
Run Code Online (Sandbox Code Playgroud)
我不能使用group by,因为它会给我每个行的总数.我如何实现我想要的结果?
你可以这样做:
SELECT `table`.`id`, `mod`, mySum
FROM `table`
JOIN (SELECT `id`, SUM(n1) + SUM(n2) + SUM(n3) AS mySum
FROM `table` GROUP BY `id`) as grpTable
ON `table`.`id` = `grpTable`.`id`
Run Code Online (Sandbox Code Playgroud)
不确定这个的性能虽然......
| 归档时间: |
|
| 查看次数: |
6113 次 |
| 最近记录: |