Trong mệnh đề select, hàm tìm giá trị nhỏ nhất trong cột là gì?

Hàm MIN trong SQL là một hàm tổng hợp được sử dụng để tìm các giá trị nhỏ nhất trong các cột hoặc hàng trong bảng.

Trong bài viết này, bạn sẽ thấy cách sử dụng hàm MIN trong SQL Server. Bạn sẽ thấy các tình huống khác nhau, nơi bạn có thể sử dụng hàm MIN của SQL để nhận được kết quả mong muốn. Vì vậy, hãy bắt đầu mà không có bất kỳ quảng cáo nào.

Cú pháp SQL MIN

Cú pháp của hàm MIN rất đơn giản. Bạn cần chuyển cột mà bạn muốn tìm giá trị nhỏ nhất như hình dưới đây:

Các ví dụ cơ bản về hàm MIN trong SQL

Hãy xem một số ví dụ cơ bản về hàm MIN trong SQL.

Thực thi tập lệnh sau để tạo một bảng có tên Điểm chứa hai cột: StudentAStudentB. Bảng này sẽ được sử dụng để tính toán các giá trị nhỏ nhất trong phần này.

CREATE TABLE POINT [StudentA float, StudentB float]

SELECT INTO Score the values ​​[15,26], [10,15], [20,19], [40,35], [25,47]

Truy vấn SELECT sau đây hiển thị tất cả các cột trong bảng:

Hãy sử dụng hàm MIN để tìm giá trị nhỏ nhất trong StudentA:

CHOOSE MIN [StudentA] as MinA

DICTIONARY

Sản phẩm:

Bạn có thể thấy giá trị nhỏ nhất tức là 10 trong đầu ra.

Hàm MIN trong SQL cũng có thể được sử dụng cùng với câu lệnh SELECT để trả về các giá trị nhỏ nhất từ ​​hai cột trở lên. Ví dụ: tập lệnh bên dưới trả về các giá trị tối thiểu từ cả hai StudentAStudentB.

SELECT MIN [StudentA] as MinA, MIN [StudentB] as MinB

DICTIONARY

Sản phẩm:

Trong kết quả đầu ra ở trên, bạn có thể thấy các giá trị tối thiểu từ cả hai StudentAStudentB.

Bạn cũng có thể sử dụng mệnh đề WHERE kết hợp với hàm MIN để lọc kết quả của mình. Tập lệnh sau trả về giá trị tối thiểu từ cả hai cột trong bảng Điểm trong đó giá trị trong StudentA lớn hơn 20.

SELECT MIN [StudentA] as MinA, MIN [StudentB] as MinBDICTIONARY

WHERE StudentA> 20

 

Sản phẩm:

Kết quả đầu ra cho thấy giá trị nhỏ nhất được trả về từ sinh viên StudentA lớn hơn 20 là 25. Đối với cột StudentB giá trị tối thiểu được trả về là 35.

Điều này thoạt nhìn có thể lạ vì StudentB chứa giá trị 26 nhỏ hơn 35, nhưng 35 được trả về là giá trị nhỏ nhất từ StudentB. Lý do là giá trị cho StudentA là 15 cho hàng trong đó StudentB chứa 26 và vì mệnh đề WHERE loại bỏ tất cả các hàng trong đó StudentA chứa các giá trị nhỏ hơn 20, hàng trong đó StudentB chứa 26 cũng bị loại bỏ.

Để tìm giá trị nhỏ nhất trong cả hai cột, bạn có thể sử dụng hai truy vấn SELECT và sau đó sử dụng toán tử UNION để nối các kết quả như được hiển thị bên dưới:

SELECT MIN [StudentA] FROM Score where StudentA > 20UNION

SELECT MIN [StudentB] FROM Score where StudentB > 20

 

Trong đầu ra, bạn sẽ thấy hai hàng, hàng đầu tiên sẽ chứa giá trị nhỏ nhất từ StudentA lớn hơn 20. Hàng thứ hai chứa giá trị nhỏ nhất với cùng điều kiện từ StudentB.

SQL MIN trên nhiều cột

Bạn cũng có thể tìm các giá trị tối thiểu trên các cột cho tất cả các hàng trong bảng của mình. Ví dụ: tập lệnh sau tìm giá trị nhỏ nhất giữa các bảng StudentAStudentB cho mỗi hàng trong bảng Điểm mà bạn đã tạo trong tập lệnh trước đó. Một cột mới MinValue được thêm vào chứa các giá trị tối thiểu trên các cột cho tất cả các hàng.

 

SELECT StudentA, StudentB,[SELECT MIN [Minimum Score]FROM [VALUE [StudentA], [StudentB]] AS UpdateScore [MinScore]]AS MinValue

DICTIONARY

 

Sản phẩm:

Nhóm theo Minimum Value

Trong phần này, bạn sẽ thấy cách bạn có thể nhận được giá trị tối thiểu từ mỗi nhóm dữ liệu trong cơ sở dữ liệu của mình. Đối với phần này, bạn sẽ sử dụng cơ sở dữ liệu mẫu Northwind mà bạn có thể tải xuống và cài đặt từ liên kết này:

Thực hiện truy vấn sau để xem bảng Products:

USE Northwind

SELECT * FROM Product

 

Sản phẩm:

Từ bảng trên, chúng ta hãy thử tìm đơn giá tối thiểu cho từng loại sản phẩm.

Thực hiện truy vấn sau:

USE Northwind

SELECT CategoryID, MIN [UnitPrice]

FROM Products

GROUP BY CategoryID

Sản phẩm:

Từ kết quả trên, bạn có thể thấy đơn giá tối thiểu cho tất cả các sản phẩm trong các danh mục khác nhau. Ví dụ: bạn có thể thấy rằng đối với danh mục có id 2, sản phẩm rẻ nhất có giá 10,00.

Mệnh đề HAVING với SQL MIN để lọc bản ghi

Bạn cũng có thể lọc các bản ghi bằng cách sử dụng hàm MIN trong SQL với mệnh đề HAVING. Mệnh đề HAVING thường được sử dụng cùng với mệnh đề GROUP BY và được sử dụng để lọc các bản ghi dựa trên một hàm tổng hợp.

Ví dụ: nếu bạn chỉ muốn chọn những danh mục có đơn giá tối thiểu lớn hơn 7, bạn có thể sử dụng tập lệnh sau:

 

USE Northwind

SELECT CategoryID, MIN [UnitPrice] as MinPrice

FROM Products

GROUP BY CategoryID

YES MIN [Unit Price] > 7

 

Sản phẩm:

Từ đầu ra giới thiệu, bạn có thể thấy rằng các bản ghi đã chọn được nhóm theo ID danh mục chỉ những danh mục đó được chọn, trong đó đơn giá tối thiểu lớn hơn 7.

Mệnh đề ORDER BY với SQL MIN cho các bản ghi đặt hàng

Mệnh đề ORDER BY được sử dụng để sắp xếp các bản ghi đã chọn theo thứ tự tăng dần hoặc giảm dần. Mệnh đề ORDER BY, khi được sử dụng cùng với mệnh đề GROUP BY, có thể được sử dụng để sắp xếp các bản ghi thông qua một hàm tổng hợp.

Ví dụ: tập lệnh sau chọn giá trị tối thiểu cho đơn giá cho từng danh mục, được sắp xếp theo thứ tự tăng dần:

USE Northwind

SELECT CategoryID, MIN [UnitPrice] as MinPrice

FROM Products

GROUP BY CategoryID

YES MIN [Unit Price] > 7

ORDER BY MINUTES [UnitPrice]

 

Sản phẩm:

Tương tự, để sắp xếp các bản ghi theo thứ tự giảm dần, bạn chỉ cần thêm một từ khóa DESC sau mệnh đề ORDER BY.

USE Northwind

SELECT CategoryID, MIN [UnitPrice] as MinPrice

FROM Products

GROUP BY CategoryID

YES MIN [Unit Price] & gt; 7

ORDER BY MIN [UnitPrice] DESC

 

Sản phẩm:

Kết quả trên hiển thị đơn giá tối thiểu cho từng loại trong bảng Sản phẩm, được sắp xếp theo thứ tự giảm dần của giá tối thiểu.

Lọc các dòng trong bảng có giá trị tối thiểu trong một cột

Thông thường, bạn cần SELECT hàng, dựa trên giá trị tối thiểu trong một cột cụ thể. Ví dụ: trong bảng Sản phẩm của cơ sở dữ liệu Northwind, bạn có thể muốn chọn tên và đơn giá của sản phẩm với đơn giá tối thiểu.

Để làm như vậy, bạn có thể viết một truy vấn con sử dụng hàm MIN để trả về giá trị nhỏ nhất cho cột đơn giá. Tiếp theo, trong truy vấn bên ngoài, bạn có thể sử dụng truy vấntrả về tên sản phẩm và đơn giá cho các hàng có đơn giá bằng giá trị [giá trị tối thiểu cho đơn giá] được trả về bởi truy vấn con.

USE NorthwindSELECT Product Name, Unit PriceFROM Products

WHERE UnitPrice = [SELECT MIN [UnitPrice] FROM Product]

 

Trong đầu ra bên dưới, bạn có thể thấy tên sản phẩm với đơn giá tối thiểu.

Sản phẩm:

SQL MIN trên cột phân loại

Ngoài việc tìm giá trị nhỏ nhất từ ​​một cột số, hàm MIN trong SQL cũng có thể được áp dụng cho một cột phân loại. Trong trường hợp này, hàm MIN trong SQL trả về bản ghi đầu tiên từ tập hợp các bản ghi được sắp xếp theo thứ tự bảng chữ cái. Hãy xem điều này trong hành động.

Tập lệnh sau tạo một Bảng có tên Student cột Student_NameStudent_Age. Các Student_Name là một cột phân loại.

Sau đó, tập lệnh chọn tất cả các bản ghi từ bảng Sinh viên được sắp xếp theo thứ tự bảng chữ cái theo Student_Name.

CREATE TABLE Students [Student_VARCHAR Name[50], Student_Age FLOAT]

CHOOSE IN Student

VALUE

['John', 26 years old],

['Nick', 15 years old],

['Mick', 19 years old],

['Alex', 35 years old],

['Joseph', 47 years old]

SELECT * FROM Student

ORDER BY Student Name

 

Sản phẩm:

Bây giờ nếu bạn áp dụng hàm MIN trên Student_Name bản ghi đầu tiên từ Student_Name được sắp xếp theo thứ tự bảng chữ cái, là Alex trong trường hợp này, sẽ được hiển thị.

Đây là kịch bản để làm như vậy:

SELECT MIN [Student_Name] as MinName

FROM student

 

Sản phẩm:

Hãy xem một ví dụ khác về cách hàm MIN trong SQL lọc các bản ghi trong trường hợp cột phân loại. Hãy lấy các tên tối thiểu từ bảng Sản phẩm của cơ sở dữ liệu Northwind, được nhóm theo id danh mục.

 

USE Northwind

SELECT CategoryID, MIN [ProductName] as MinName

FROM Products

GROUP BY CategoryID

 

Sản phẩm:

Bạn cũng có thể sử dụng SQL MIN với mệnh đề ORDER BY để sắp xếp dữ liệu bằng cách sử dụng hàm tổng hợp trên cột phân loại. Đây là một ví dụ:

USE Northwind

SELECT CategoryID, MIN [ProductName] as MinName

FROM Products

GROUP BY CategoryID

ORDER BY MIN [ProductName]

Sản phẩm:

Bạn thậm chí có thể sử dụng hàm MIN trong SQL với mệnh đề HAVING để lọc dữ liệu từ các cột phân loại. Ví dụ: tập lệnh sau trả về các tên sản phẩm tối thiểu từ cột Tên sản phẩm, được sắp xếp theo thứ tự bảng chữ cái, được nhóm theo id danh mục, trong đó tên sản phẩm tối thiểu nhỏ hơn chuỗi C. Điều này chỉ trả về những tên sản phẩm bắt đầu bằng A hoặc B. Đây là một ví dụ:

USE Northwind

SELECT CategoryID, MIN [ProductName] as MinName

FROM Products

GROUP BY CategoryID

YES MIN [Product Name]

Chủ Đề