BLOGS BY TOPIC▼
BLOGS BY AUTHOR▼
BLOGS BY YEAR▼
Using the Pivot operator in SQL Server allows you to create basic pivot tables from your query results. This blog teaches you how to create simple, static pivots, crosstab-style tables and exciting, dynamic pivot tables.
- Pivoting Data in SQL Server (this blog)
- Using the Pivot Operator in SQL Server
- Dynamic Pivot Tables
Posted by Andrew Gould on 09 June 2014
You need a minimum screen resolution of about 700 pixels width to see our blogs. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.
Pivoting Data in SQL Server
You can download the script to create the database used in this article here.
Our two-day advanced SQL course usually has time to cover this topic. Failing this, there are loads more SQL training resources here.
Grouping and Aggregating Data
The standard way to group and aggregate data in SQL Server is to use the GROUP BY clause.
SELECT
CountryName
,COUNT(FilmID) AS [Count of Films]
FROM
tblFilm AS f INNER JOIN
tblCountry AS c
ON c.CountryID=f.FilmCountryID
GROUP BY
CountryName
Executing the query shown above generates the following results:

The GROUP BY clause generates results grouped in rows.
The row groups generated by this type of query work well enough, but what if you wanted the data grouped by columns instead? What if you wanted both row groups and column groups in the same query?

You might want to organise you groups in columns rather than rows.

You may want to create both row and column groups to create a crosstab-style report.
You can achieve results such as the ones shown above using the PIVOT operator and the rest of this article explains how it works.
- Pivoting Data in SQL Server (this blog)
- Using the Pivot Operator in SQL Server
- Dynamic Pivot Tables