好的,所以我在数据库上工作,基本上我有一个所有权列表。有时我会收到几乎重复的行,只是属性的数量不同。我想将它们合并为一个,将金额设置为两者的总和。例如:
Name Surname Amount
Ann Evans 4
Ann Evans 7
我想要:
Ann Evans 11
如何合并具有共同元组的两行?
答案 0 :(得分:2)
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
希望得到这个帮助。