Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MAX () so với GREATEST () trong MySQL:Sự khác biệt là gì?

Thoạt nhìn, MySQL MAX()GREATEST() các chức năng thực hiện một hoạt động tương tự. Cả hai đều trả về giá trị lớn nhất từ ​​một dải giá trị. Tuy nhiên, có sự khác biệt giữa hai chức năng này.

Cách tốt nhất để thấy sự khác biệt giữa hai hàm này là so sánh cú pháp của chúng.

Cú pháp

Cú pháp cho mỗi hàm như sau:

MAX([DISTINCT] expr) [over_clause]
GREATEST(value1,value2,...)

Vì vậy, họ đã trông hoàn toàn khác nhau. MAX() hàm chấp nhận DISTINCT từ khóa cũng như OVER mệnh đề (và GREATEST() chức năng không).

Tuy nhiên, sự khác biệt chính giữa hai hàm này là ở / s đối số được chấp nhận. Cụ thể:

  • MAX() chấp nhận một đối số
  • GREATEST() chấp nhận nhiều đối số

Vì vậy, MAX() thường được sử dụng để trả về giá trị lớn nhất trong một cột trong cơ sở dữ liệu. Bảng có thể chứa nhiều hàng, nhưng hàm này trả về hàng có giá trị lớn nhất.

GREATEST() mặt khác, trả về đối số có giá trị lớn nhất từ ​​danh sách các đối số được truyền cho nó. Vì vậy, bạn có thể truyền say, 3 đối số cho hàm này và nó sẽ trả về một đối số có giá trị lớn nhất.

Ví dụ 1 - Hàm MAX ()

Dưới đây là một ví dụ để chứng minh MAX() chức năng.

SELECT MAX(Population) AS 'Result'
FROM City;

Kết quả:

+----------+
| Result   |
+----------+
| 10500000 |
+----------+

Ví dụ này tìm thành phố có dân số đông nhất từ ​​City bàn. Cột chứa dân số cho mỗi thành phố được gọi là Population .

Điểm chính về ví dụ này là chỉ một đối số được cung cấp cho hàm, nhưng nhiều hàng đã được truy vấn.

Nếu bạn cố gắng chuyển nhiều đối số cho MAX() bạn sẽ gặp lỗi.

Ví dụ 2 - Hàm GREATEST ()

Dưới đây là một ví dụ để chứng minh GREATEST() chức năng.

SELECT GREATEST(1, 5, 9) AS 'Result';

Kết quả:

+--------+
| Result |
+--------+
|      9 |
+--------+

Vì vậy, trong trường hợp này, chúng tôi cung cấp ba đối số. Mỗi đối số được so sánh với đối số khác. Điều này trái ngược với đối số duy nhất được cung cấp cho MAX() chức năng.

Nếu bạn cố gắng chuyển một đối số cho GREATEST() bạn sẽ gặp lỗi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các thủ tục được lưu trữ trong MySQL sử dụng chúng hoặc không sử dụng chúng

  2. Làm cách nào để thêm tham chiếu vào trình kết nối MySQL cho .NET?

  3. MySQL tham gia truy vấn bằng cách sử dụng như thế nào?

  4. Cách trả về kết quả truy vấn dưới dạng danh sách được phân tách bằng dấu phẩy trong MySQL

  5. MySQL Làm cách nào để bạn CHÈN VÀO bảng có truy vấn con SELECT trả về nhiều hàng?