Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL tìm giá trị tích lũy lớn nhất (maximum cumulative value)

Giới thiệu

Để tìm giá trị tích lũy (ví dụ: value1 * value2) lớn nhất và số lần xuất hiện, dùng subquery tính toán cột ảo, sau đó GROUP BY và ORDER BY ... DESC LIMIT 1.

Ví dụ minh họa

Bước 1: Tạo bảng và chèn dữ liệu

CREATE TABLE demo23 (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    value1 INT,
    value2 INT
);
INSERT INTO demo23 (value1, value2) VALUES 
(5, 600), (20, 800), (7, 400), (6, 500), (10, 300), (11, 500);

Bước 2: Truy vấn giá trị tích lũy lớn nhất

SELECT total_value, COUNT(*) AS number_of_occurrences
FROM (
    SELECT value1 * value2 AS total_value FROM demo23
) t
GROUP BY total_value
ORDER BY total_value DESC
LIMIT 1;

Kết quả

+-------------+-----------------------+
| total_value | number_of_occurrences |
+-------------+-----------------------+
| 16000       | 1                     |
+-------------+-----------------------+

Giải thích: 20 * 800 = 16000 là tích lớn nhất. Subquery tạo cột total_value, query ngoài gom nhóm và sắp xếp giảm dần.