SQL Server MIN(): Get Minimum Value in a Column
In SQL Server, the MIN()
function is an aggregate function that returns the minimum value in the column or expression.
MIN (expression)
Parameters
expression: It can be a constant, a table column, or function, and any combination of arithmetic, or string operators.
The MIN()
function can be used with numeric, character, uniqueidentifier, or with datetime data.
Return Value
Returns the minimum value in the column/group of the same data type as column or expression.
Example 1:
the following query fetches the minimum Salary
from the Employee
table.
SELECT MIN(Salary) AS MinSal FROM Employee;
To check the above, fetch all rows from the Employee
table order by Salary
.
As seen in the output, the lowest salary at 30,000.
MIN() with String Column
You can use MIN()
function on character/string data also.
In the following example, the MIN()
is used on the LastName
column of the Employee
table.
It returns the first value in the alphabetical order.
SELECT MIN(LastName) As Name FROM Employee;
MIN() with GROUP BY Clause
In the following example, the minimum salary in each department is returned by using the GROUP BY clause. Here, the GROUP BY clause groups the employees based on their department and then the minimum salary in each group is returned.
SELECT DepartmentId, MIN (Salary) AS DeptMinSalary
FROM Employee
GROUP BY DepartmentId;
MIN() with HAVING Clause
MIN()
function can be used in the HAVING clause as shown in the following example.
Here the GROUP BY clause groups the employees according to their departments, gets the minimum salary of each department, and then the HAVING clause filters the result by returning only those departments having a minimum salary lesser than 35000.
SELECT DepartmentId, MIN(Salary) AS DeptMinSal FROM Employee
GROUP BY DepartmentID
HAVING MIN (Salary) < 35000;
Get Maximum and Minimum Value
In the following example, the MIN() and MAX() functions are used on the Salary
column of the Employee
table.
The minimum and maximum salary in the table is returned.
SELECT MIN(Salary) AS MinSal, MAX(Salary) AS MaxSal FROM Employee;