MySQL是一種關系型數據庫管理系統,它可以幫助用戶存儲和管理大量的數據。在MySQL中,有時候需要對數據進行分組、取最大值和求和等操作。下面介紹如何使用MySQL實現分組取最大值求和。
-- 創建一個測試表 CREATE TABLE test ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, score INT NOT NULL, class VARCHAR(20) NOT NULL ); -- 插入一些測試數據 INSERT INTO test (name, score, class) VALUES ('張三', 85, '數學班'); INSERT INTO test (name, score, class) VALUES ('李四', 92, '數學班'); INSERT INTO test (name, score, class) VALUES ('王五', 88, '英語班'); INSERT INTO test (name, score, class) VALUES ('趙六', 75, '英語班'); INSERT INTO test (name, score, class) VALUES ('錢七', 90, '語文班'); INSERT INTO test (name, score, class) VALUES ('孫八', 85, '語文班'); -- 分組取最大值并求和 SELECT class, SUM(max_score) AS total_score FROM ( SELECT class, MAX(score) AS max_score FROM test GROUP BY class ) AS tmp GROUP BY class ORDER BY total_score DESC;
以上代碼首先創建了一個測試表test,并插入了一些測試數據。然后,使用子查詢從test表中分組取每個班級最大的成績,并求和這些最大成績,最后按總成績降序排列。
其中,子查詢的代碼如下:
SELECT class, MAX(score) AS max_score FROM test GROUP BY class
它從test表中分組取每個班級的成績,并計算每個班級的最大成績。得到的結果如下:
class max_score 數學班 92 英語班 88 語文班 90
最后,使用SELECT語句對上述結果進行求和,并按照班級的總成績排序,得到以下結果:
class total_score 數學班 177 語文班 175 英語班 88
以上就是MySQL分組取最大值求和的操作方法。希望本文能對大家有所幫助。