Sử dụng hàm tổng hợp MIN() và MAX() trên các cột cần thiết trong cùng một SELECT.
Tạo bảng
mysql> CREATE TABLE DemoTable (FirstValue INT, SecondValue INT);
Chèn dữ liệu
mysql> INSERT INTO DemoTable VALUES(10, 30), (30, 60), (100, 500), (50, 80);
Xem dữ liệu
mysql> SELECT * FROM DemoTable;
+------------+-------------+ | FirstValue | SecondValue | +------------+-------------+ | 10 | 30 | | 30 | 60 | | 100 | 500 | | 50 | 80 | +------------+-------------+
Lấy MIN và MAX của 2 cột cùng lúc
mysql> SELECT
-> MIN(FirstValue), MIN(SecondValue),
-> MAX(FirstValue), MAX(SecondValue)
-> FROM DemoTable;
+-----------------+------------------+-----------------+------------------+ | MIN(FirstValue) | MIN(SecondValue) | MAX(FirstValue) | MAX(SecondValue) | +-----------------+------------------+-----------------+------------------+ | 10 | 30 | 100 | 500 | +-----------------+------------------+-----------------+------------------+
Mở rộng: Kèm theo ID của hàng MIN/MAX
MySQL không hỗ trợ trực tiếp ARG_MIN/ARG_MAX. Dùng subquery:
SELECT
(SELECT Id FROM DemoTable ORDER BY FirstValue ASC LIMIT 1) AS Id_Min_First,
(SELECT Id FROM DemoTable ORDER BY FirstValue DESC LIMIT 1) AS Id_Max_First,
MIN(FirstValue) AS Min_First, MAX(FirstValue) AS Max_First
FROM DemoTable;
Window Functions (MySQL 8.0+)
SELECT
FirstValue,
MIN(FirstValue) OVER () AS Min_First,
MAX(FirstValue) OVER () AS Max_First
FROM DemoTable;
Tóm tắt hàm tổng hợp
| Hàm | Mô tả | Bỏ qua NULL? |
|---|---|---|
| MIN() | Giá trị nhỏ nhất | Có |
| MAX() | Giá trị lớn nhất | Có |
| SUM() | Tổng | Có |
| AVG() | Trung bình | Có |
| COUNT() | Số lượng | COUNT(col) có, COUNT(*) không |