MySQL是一種非常強(qiáng)大的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以提供許多豐富的指令和查詢方式。在實(shí)際應(yīng)用和數(shù)據(jù)處理中,我們常常需要數(shù)據(jù)的去重、分組和求和等操作。下面我們就具體看一下如何通過MySQL來進(jìn)行去重后分組求和的操作。
首先,我們需要?jiǎng)?chuàng)建一個(gè)測(cè)試數(shù)據(jù)表,并插入一些數(shù)據(jù):
CREATE TABLE test(
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
salary DOUBLE NOT NULL
);
INSERT INTO test VALUES(1,'Tom',20,2000.00);
INSERT INTO test VALUES(2,'Jerry',25,3000.00);
INSERT INTO test VALUES(3,'Tom',22,2500.00);
INSERT INTO test VALUES(4,'Lucy',23,2800.00);
INSERT INTO test VALUES(5,'Jerry',26,3200.00);
INSERT INTO test VALUES(6,'Tom',20,2000.00);
接下來,我們需要使用SELECT查詢指令,并結(jié)合DISTINCT、GROUP BY和SUM等關(guān)鍵詞來實(shí)現(xiàn)去重后分組求和的操作:
SELECT name, SUM(salary)
FROM (SELECT DISTINCT name, salary FROM test) t
GROUP BY name;
上面的代碼中,首先使用了子查詢來進(jìn)行去重操作,其中DISTINCT關(guān)鍵詞表示去重,然后再將結(jié)果作為t表來進(jìn)行分組求和。最終的結(jié)果將會(huì)得到每個(gè)名字對(duì)應(yīng)的總薪資,如下所示:
+-------+-------------+
| name | SUM(salary) |
+-------+-------------+
| Jerry | 6200.00 |
| Lucy | 2800.00 |
| Tom | 6500.00 |
+-------+-------------+
因此,通過MySQL的SELECT查詢指令,我們可以方便地對(duì)數(shù)據(jù)進(jìn)行去重后分組求和的操作。