Languages
[Edit]
EN

MS SQL Server - count if

0 points
Created by:
Dirask JS Member
3460

In this article, we would like to show you how to count rows when the expression is true in MS SQL Server.

Quick solution:

SELECT COUNT(CASE WHEN expresion THEN 1 END)

Note:

Go to this article to read more about CASE statement.

Practical example

To show you how IF() function works, we will use the following users table:

MS SQL Server - example data used to explain IF() function
MS SQL Server - example data.

Note:

At the end of this article you can find database preparation SQL queries.

Example

In this example, we will count the number of users whose salary is high, average or low.

Query

SELECT 
    COUNT(CASE WHEN [salary] = 6000 THEN 1 END) AS 'high_salary',
    COUNT(CASE WHEN [salary] = 4000 THEN 1 END) AS 'average_salary',
    COUNT(CASE WHEN [salary] = 2000 THEN 1 END) AS 'low_salary'
FROM [users];

Result:

MS SQL Server - COUNT IF example - result
Results - HeidiSQL

Database preparation

create_tables.sql file:

CREATE TABLE [users] (
	[id] INT IDENTITY(1,1),
	[name] VARCHAR(50) NOT NULL,
	[surname] VARCHAR(50) NOT NULL,
	[department_id] INT,
    [salary] DECIMAL(15,2) NOT NULL,
	PRIMARY KEY ([id])
);

insert_data.sql file:

INSERT INTO [users]
	( [name], [surname], [department_id], [salary])
VALUES
	('John', 'Stewart', 1, '6000'),
	('Chris', 'Brown', 2, '6000'),
	('Kate', 'Lewis', 3, '4000'),
	('Ailisa', 'Gomez', NULL, '4000'),
	('Gwendolyn', 'James', 2, '4000'),
	('Simon', 'Collins', 4, '4000'),
	('Taylor', 'Martin', 2, '2000'),
	('Andrew', 'Thompson', NULL, '2000');

MS SQL Server - functions

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join