簡體   English   中英

SQL合並的行相差1參數

[英]SQL merging rows differing by 1 parameter

好的,所以我要在一個數據庫上醒來,基本上我擁有一個所有權列表。 有時我會收到幾乎重復的行,只是屬性的數量不同。 我想將它們合並為一個,將金額設置為兩者之和。 例:

Name  Surname Amount
Ann   Evans   4
Ann   Evans   7

我想擁有:

Ann   Evans   11

如何合並具有共同元組的兩行?

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;

將聚合函數SUM()GROUP BY子句一起使用,按所需的列數和結果分組

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

嘗試這個:

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

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM