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

MAX(DISTINCT ...) trong MySQL: có khác biệt gì không?

Hai câu truy vấn cho kết quả giống nhau:

SELECT MAX(DISTINCT cot) FROM bang;
SELECT MAX(cot) FROM bang;

Lý do: MySQL nội bộ tự động loại bỏ trùng lặp khi tính MAX()/MIN(), nên DISTINCT là thừa.

Tạo bảng:

mysql> CREATE TABLE DemoTable (Number INT); Query OK, 0 rows affected (1.50 sec)

Chèn dữ liệu (88 lặp 3 lần):

mysql> INSERT INTO DemoTable VALUES(80),(88),(78),(88),(68),(88);

Trường hợp 1 — có DISTINCT:

mysql> SELECT MAX(DISTINCT Number) FROM DemoTable;

Kết quả: 88

Trường hợp 2 — không DISTINCT:

mysql> SELECT MAX(Number) FROM DemoTable;

Kết quả: 88

Kết luận: Không cần viết DISTINCT trong MAX()/MIN(). Chỉ có ý nghĩa với COUNT(DISTINCT), SUM(DISTINCT), AVG(DISTINCT).