To create a pivot table in SQL, you will need to use the GROUP BY and CASE statements. Here is an example of how you might go about creating a pivot table.
Throughout this guide, you’ll find interactive SQL exercises where you can practice creating pivot tables directly in your browser. These hands-on examples will help you master using CASE statements with aggregate functions to transform rows into columns—essential for creating summary reports and dashboards.
Using a demo sales table
First, let’s say we have a table called sales that contains information about sales transactions. The table has the following columns: date, product, quantity, and price.
Simple pivot table example
To create a pivot table that shows the total quantity and total price for each product, we would use the following query:
SELECT
product,
SUM(CASE WHEN quantity THEN quantity ELSE 0 END) AS total_quantity,
SUM(CASE WHEN price THEN price ELSE 0 END) AS total_price
FROM sales
GROUP BY product
This query uses a CASE statement to specify which values should be included in the pivot table, and then uses the SUM function to calculate the total quantity and total price for each product. The GROUP BY statement groups the rows by product, which allows us to see the totals for each product separately.
Pivot table results
Here is an example of what the resulting pivot table might look like:
| product | total_quantity | total_price |
|---|---|---|
| ProductA | 50 | 500 |
| ProductB | 100 | 1000 |
| ProductC | 75 | 750 |
Try it yourself:
[[ testData.title ]]
Query the weather_data table to create a pivot table showing average temperature for each city by day of week. Transform the day rows into separate columns (Mon, Tue, Wed).
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
Διαθέσιμοι Πίνακες
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
This example shows the classic pivot pattern: transforming rows (months) into columns using CASE statements with SUM aggregation.
SUM, AVG, or other aggregate functions
You can also use the GROUP BY and CASE statements to create pivot tables that show other types of data, such as the average price for each product. For example, the following query would create a pivot table that shows the average price for each product:
SELECT
product,
AVG(CASE WHEN price THEN price ELSE NULL END) AS avg_price
FROM sales
GROUP BY product
The resulting pivot table would look something like this:
| product | avg_price |
|---|---|
| ProductA | 10 |
| ProductB | 20 |
| ProductC | 15 |
Try it yourself:
[[ testData.title ]]
Query the website_traffic table to create a pivot table showing both sessions and pageviews for each traffic source. Show Desktop and Mobile as separate column groups.
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
Διαθέσιμοι Πίνακες
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
This advanced example demonstrates pivoting with multiple aggregations—combining different metrics into column groups for comprehensive analysis.
Summary
In summary, to create a pivot table in SQL, you can use the GROUP BY and CASE statements along with aggregation functions like SUM and AVG to calculate and display the data you want to see in the pivot table. This approach allows you to easily summarize and analyze large amounts of data, and can be very useful for making business decisions.
Το Beekeeper Studio Είναι Ένα Δωρεάν & Ανοιχτού Κώδικα GUI Βάσης Δεδομένων
Το καλύτερο εργαλείο SQL query & editor που έχω χρησιμοποιήσει. Παρέχει όλα όσα χρειάζομαι για να διαχειριστώ τη βάση δεδομένων μου. - ⭐⭐⭐⭐⭐ Mit
Το Beekeeper Studio είναι γρήγορο, διαισθητικό και εύκολο στη χρήση. Το Beekeeper υποστηρίζει πολλές βάσεις δεδομένων και λειτουργεί εξαιρετικά σε Windows, Mac και Linux.
Τι Λένε Οι Χρήστες Για Το Beekeeper Studio
"Το Beekeeper Studio αντικατέστησε εντελώς την παλιά μου ροή εργασίας SQL. Είναι γρήγορο, διαισθητικό και κάνει τη δουλειά με βάσεις δεδομένων απολαυστική ξανά."
"Έχω δοκιμάσει πολλά GUIs βάσεων δεδομένων, αλλά το Beekeeper βρίσκει την τέλεια ισορροπία μεταξύ χαρακτηριστικών και απλότητας. Απλά δουλεύει."