SQL合并行的参数不同1

时间:2014-03-20 16:48:01

标签: mysql sql

好的,所以我在数据库上工作,基本上我有一个所有权列表。有时我会收到几乎重复的行,只是属性的数量不同。我想将它们合并为一个,将金额设置为两者的总和。例如:

Name  Surname Amount
Ann   Evans   4
Ann   Evans   7

我想要:

Ann   Evans   11

如何合并具有共同元组的两行?

3 个答案:

答案 0 :(得分:2)

使用SUM()聚合函数以及GROUP BY子句:

SELECT Name, 
       Surname, 
       SUM(Amount) AS total_amount
  FROM tbl 
GROUP BY 
       Name, 
       Surname;

UPD。 MichałSzydłowski:好的,但我不想选择,我想运行更新查询,这将永久修改表格。

我在这里看到的最佳选择是使用INSERT INTO ... SELECT

CREATE TABLE temp_tbl LIKE tbl;

INSERT INTO temp_tbl (Name, Surname, Amount)
SELECT Name, 
       Surname, 
       SUM(Amount) 
  FROM tbl 
GROUP BY 
       Name, 
       Surname;

TRUNCATE tbl;

INSERT INTO tbl (Name, Surname, Amount)
SELECT Name, 
       Surname, 
       Amount
  FROM temp_tbl;

答案 1 :(得分:1)

将聚合函数SUM()GROUP BY子句一起使用,按您想要的列数与结果分组

select Name,Surname,sum(Amount) as Amount from table group by Name,Surname

答案 2 :(得分:1)

试试这个:

SELECT Name, SurName, SUM(Amount) as TotalAmount FROM myTable GROUP BY Name, SurName

希望得到这个帮助。