gpt4 book ai didi

mysql - 总和数据库中特定列的所有行是相同的

转载 作者:行者123 更新时间:2023-11-30 00:50:57 25 4
gpt4 key购买 nike

在我的项目中,我需要对具有相同类型和相同参数的所有行进行求和,其他的则保持原样。例如我有这样一个表:

id | type | ammount | param1 | param2 | param3
1 | 1 | 5 | 1 | 3 | 2
2 | 1 | 20 | 2 | 3 | 2
3 | 1 | 21 | 1 | 3 | 2
4 | 2 | 10 | 1 | 3 | 2
5 | 2 | 3 | 1 | 2 | 1

我想要达到的结果是:

type | sum of ammount | param1 | param2 | param3
1 | 26 | 1 | 3 | 2
1 | 20 | 2 | 3 | 2
2 | 10 | 1 | 3 | 2
2 | 3 | 1 | 2 | 1

正如您所看到的,id 为 1 和 3 的行已求和,因为它们具有相同的类型并且所有参数(param1、param2 和 param3)都相同。我怎样才能实现这个目标?我用的是mysql。

提前谢谢您。

卡尔雷格。

最佳答案

使用“group by”子句:

use test;

create table Testsum(id int, type int, ammount int, param1 int, param2 int, param3 int);

insert Testsum(id, type, ammount, param1, param2, param3)
values(1, 1, 5, 1, 3, 2),
(2, 1, 20, 2, 3, 2),
(3, 1, 21, 1, 3, 2),
(4, 2, 10, 1, 3, 2),
(5, 2, 3, 1, 2, 1);

/*
id | type | ammount | param1 | param2 | param3
1 | 1 | 5 | 1 | 3 | 2
2 | 1 | 20 | 2 | 3 | 2
3 | 1 | 21 | 1 | 3 | 2
4 | 2 | 10 | 1 | 3 | 2
5 | 2 | 3 | 1 | 2 | 1
*/

select type, sum(ammount) as ammount, param1, param2, param3
from Testsum
group by type, param1, param2, param3;

结果:

type,ammount,param1,param2,param3
1,26,1,3,2
1,20,2,3,2
2,3,1,2,1
2,10,1,3,2

可能最高的 ID 有帮助:

select  max(id) as id, type, sum(ammount) as ammount, param1, param2, param3
from Testsum
where ammount is not null or ammount <> 0
group by type, param1, param2, param3 ;

或者指定 min(id) 而不是 max(id) 时的最低 ID。

关于mysql - 总和数据库中特定列的所有行是相同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com