Trong MariaDB, MAX()
là một hàm tổng hợp trả về giá trị lớn nhất trong một biểu thức nhất định.
Cú pháp
Cú pháp như sau:
MAX([DISTINCT] expr)
Dữ liệu mẫu
Giả sử chúng ta có một bảng với dữ liệu sau:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Kết quả:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Ví dụ
Chúng tôi có thể sử dụng truy vấn sau để nhận giá tối đa từ bảng đó.
SELECT MAX(ProductPrice)
FROM Products;
Kết quả:
245.00
Trong trường hợp này, thông tin giá được lưu trữ trong ProductPrice
và do đó chúng tôi chuyển nó làm đối số cho MAX()
hàm, sau đó sẽ tính toán và trả về kết quả.
Kết quả đã lọc
MAX()
hàm hoạt động trên các hàng được trả về bởi truy vấn. Vì vậy, nếu bạn lọc kết quả, kết quả là MAX()
sẽ phản ánh điều đó.
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Kết quả:
25.99
Trong trường hợp này, 25,99 là giá tối đa của tất cả các sản phẩm được cung cấp bởi nhà cung cấp được chỉ định.
Dữ liệu ngày / giờ
Bạn có thể sử dụng MAX()
về giá trị ngày / giờ.
Giả sử chúng ta có bảng sau:
SELECT PetName, DOB
FROM Pets;
Kết quả:
+---------+------------+ | PetName | DOB | +---------+------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | NULL | | Meow | NULL | +---------+------------+
Chúng ta có thể sử dụng MAX()
để tìm ngày sinh tối đa (DOB
).
SELECT MAX(DOB)
FROM Pets;
Kết quả:
2020-11-28
Đây sẽ là ngày sinh của thú cưng nhỏ tuổi nhất.
NULL
Giá trị
MAX()
hàm bỏ qua bất kỳ NULL
nào các giá trị. Trong bảng mẫu của chúng tôi ở trên, hai hàng cuối cùng có NULL
các giá trị trong DOB
của chúng nhưng cột đó đã bị bỏ qua trong MAX()
của chúng tôi ví dụ.
Dữ liệu ký tự
Khi được sử dụng với các cột dữ liệu ký tự, MAX()
tìm giá trị cao nhất trong chuỗi đối chiếu.
Ví dụ:
SELECT MAX(ProductName)
FROM Products;
Kết quả:
Straw Dog Box
DISTINCT
Từ khóa
DISTINCT
từ khóa có thể được sử dụng với MAX()
tuy nhiên, hàm này tạo ra kết quả giống như việc bỏ qua DISTINCT
. Cho phép DISTINCT
hàm cho phép MariaDB tuân thủ tiêu chuẩn ISO SQL.
Do đó, chúng ta có thể làm điều này:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Kết quả:
245.00
Nhưng nó không ảnh hưởng đến kết quả.
DISTINCT
từ khóa có thể rất hữu ích khi được sử dụng với các ngữ cảnh khác (ví dụ:với COUNT()
hàm), nhưng nó không có nghĩa khi được sử dụng với MAX()
. DISTINCT
từ khóa loại bỏ các bản sao, nhưng trong trường hợp MAX()
nó sẽ không tạo ra sự khác biệt nào vì MAX()
trả về cùng một kết quả bất kể có bao nhiêu hàng có cùng giá trị lớn nhất.
Chức năng của cửa sổ
MAX()
có thể được sử dụng cùng với OVER
mệnh đề để tạo một hàm cửa sổ.
Xem SQL MAX()
Ví dụ cho người mới bắt đầu.