Bird
Raised Fist0
SQLquery~5 mins

Pivot and unpivot concepts in SQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the PIVOT operation do in SQL?
PIVOT turns rows into columns, summarizing data to make it easier to compare values side by side.
Click to reveal answer
beginner
What is the purpose of the UNPIVOT operation in SQL?
UNPIVOT turns columns into rows, helping to normalize data or prepare it for analysis.
Click to reveal answer
intermediate
In a PIVOT operation, what kind of SQL clause is typically used to aggregate data?
An aggregate function like SUM(), COUNT(), or AVG() is used to combine values when turning rows into columns.
Click to reveal answer
beginner
Give a simple example of when you might use UNPIVOT.
If you have sales data with columns for each month, UNPIVOT can turn those month columns into rows with a month name and sales value, making it easier to analyze trends.
Click to reveal answer
beginner
Why is PIVOT useful for reporting?
PIVOT helps create summary tables that show data in a clear, column-based format, making reports easier to read and understand.
Click to reveal answer
What does the PIVOT operation do in SQL?
AJoins two tables
BTurns rows into columns
CDeletes duplicate rows
DTurns columns into rows
Which SQL function is commonly used with PIVOT to summarize data?
ASUM()
BJOIN()
CWHERE()
DORDER BY()
What is the main use of UNPIVOT in SQL?
AConvert rows into columns
BSort data
CFilter data
DConvert columns into rows
If you have monthly sales as columns, which operation helps to list them as rows?
AUNPIVOT
BPIVOT
CGROUP BY
DDISTINCT
Why might you use PIVOT in a report?
ATo add new rows
BTo delete rows
CTo display data side by side in columns
DTo filter data
Explain in your own words what PIVOT and UNPIVOT do in SQL and give a simple example for each.
Think about how data layout changes between rows and columns.
You got /4 concepts.
    Why are PIVOT and UNPIVOT useful when working with data? Describe a situation where each would help.
    Consider how data presentation affects understanding.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the PIVOT operation in SQL?
      easy
      A. To convert rows into columns for easier data summarization
      B. To convert columns into rows to list data
      C. To delete duplicate rows from a table
      D. To join two tables based on a common column

      Solution

      1. Step 1: Understand what pivot does

        PIVOT changes the orientation of data by turning row values into columns.
      2. Step 2: Compare with other options

        Only To convert rows into columns for easier data summarization correctly describes this; B describes unpivot, C and D are unrelated.
      3. Final Answer:

        To convert rows into columns for easier data summarization -> Option A
      4. Quick Check:

        Pivot = rows to columns [OK]
      Hint: Pivot flips rows to columns; unpivot does the reverse [OK]
      Common Mistakes:
      • Confusing pivot with unpivot
      • Thinking pivot deletes data
      • Mixing pivot with join operations
      2. Which of the following is the correct syntax to unpivot columns Q1, Q2, Q3 into rows in SQL Server?
      easy
      A. SELECT Product, Quarter, Sales FROM SalesData UNPIVOT (Sales IN (Q1, Q2, Q3)) AS Unpvt
      B. SELECT Product, Quarter, Sales FROM SalesData UNPIVOT (Sales FOR Quarter IN ([Q1], [Q2], [Q3])) AS Unpvt
      C. SELECT Product, Quarter, Sales FROM SalesData UNPIVOT (Quarter FOR Sales IN (Q1, Q2, Q3)) AS Unpvt
      D. SELECT Product, Quarter, Sales FROM SalesData PIVOT (Sales FOR Quarter IN (Q1, Q2, Q3)) AS Pvt

      Solution

      1. Step 1: Recall UNPIVOT syntax

        UNPIVOT requires specifying the value column and the column that holds the original column names (FOR clause).
      2. Step 2: Check each option

        SELECT Product, Quarter, Sales FROM SalesData UNPIVOT (Sales FOR Quarter IN ([Q1], [Q2], [Q3])) AS Unpvt correctly uses UNPIVOT (Sales FOR Quarter IN ([Q1], [Q2], [Q3])). Others misuse PIVOT or omit FOR clause.
      3. Final Answer:

        SELECT Product, Quarter, Sales FROM SalesData UNPIVOT (Sales FOR Quarter IN ([Q1], [Q2], [Q3])) AS Unpvt -> Option B
      4. Quick Check:

        UNPIVOT syntax = SELECT Product, Quarter, Sales FROM SalesData UNPIVOT (Sales FOR Quarter IN ([Q1], [Q2], [Q3])) AS Unpvt [OK]
      Hint: UNPIVOT needs 'value FOR name IN (columns)' syntax [OK]
      Common Mistakes:
      • Using PIVOT instead of UNPIVOT
      • Swapping value and FOR column names
      • Omitting the FOR clause
      3. Given the table Sales with columns Product, Year, Quarter, Amount, what will be the result of this query?
      SELECT * FROM Sales PIVOT (SUM(Amount) FOR Quarter IN ([Q1], [Q2], [Q3], [Q4])) AS Pvt;
      medium
      A. An error because SUM cannot be used in PIVOT
      B. A table with columns Product, Year, Quarter, Amount unchanged
      C. A table with columns Product, Year, Q1, Q2, Q3, Q4 showing summed amounts per quarter
      D. A table with columns Quarter, Product, Year, Amount

      Solution

      1. Step 1: Understand PIVOT with aggregation

        PIVOT with SUM aggregates Amount values grouped by Product and Year, creating columns for each Quarter.
      2. Step 2: Analyze query output

        The output will have Product, Year, and one column per quarter (Q1 to Q4) with summed amounts.
      3. Final Answer:

        A table with columns Product, Year, Q1, Q2, Q3, Q4 showing summed amounts per quarter -> Option C
      4. Quick Check:

        PIVOT with SUM aggregates rows into columns [OK]
      Hint: PIVOT with SUM groups and sums data into new columns [OK]
      Common Mistakes:
      • Expecting original rows unchanged
      • Thinking PIVOT cannot use aggregation
      • Confusing column order in output
      4. You wrote this query to unpivot sales data:
      SELECT Product, Quarter, Sales FROM SalesData UNPIVOT (Sales FOR Quarter IN (Q1, Q2, Q3)) AS Unpvt;

      But it returns an error. What is the likely cause?
      medium
      A. The FOR clause should be after the IN clause
      B. UNPIVOT cannot be used with more than two columns
      C. The alias 'Unpvt' is missing parentheses
      D. The column names in IN clause must be enclosed in square brackets

      Solution

      1. Step 1: Check syntax for column names in UNPIVOT

        In SQL Server, column names in the IN list must be enclosed in square brackets if they are identifiers like Q1, Q2, Q3.
      2. Step 2: Identify error cause

        Missing brackets cause syntax error; other options are incorrect syntax rules.
      3. Final Answer:

        The column names in IN clause must be enclosed in square brackets -> Option D
      4. Quick Check:

        Use brackets for column names in UNPIVOT IN list [OK]
      Hint: Always bracket column names in UNPIVOT IN list [OK]
      Common Mistakes:
      • Omitting brackets around column names
      • Misplacing FOR clause
      • Incorrect alias syntax
      5. You have a table MonthlySales with columns Store, Jan, Feb, Mar representing sales per month. You want to create a report listing Store, Month, Sales rows. Which SQL approach correctly unpivots this data?
      hard
      A. Use UNPIVOT: SELECT Store, Month, Sales FROM MonthlySales UNPIVOT (Sales FOR Month IN ([Jan], [Feb], [Mar])) AS Unpvt;
      B. Use PIVOT: SELECT Store, Month, Sales FROM MonthlySales PIVOT (SUM(Sales) FOR Month IN ([Jan], [Feb], [Mar])) AS Pvt;
      C. Use JOIN to combine Jan, Feb, Mar columns into rows
      D. Use GROUP BY Store, Month without unpivot

      Solution

      1. Step 1: Identify the goal

        We want to transform columns Jan, Feb, Mar into rows with Month and Sales columns.
      2. Step 2: Choose correct SQL operation

        UNPIVOT converts columns into rows; Use UNPIVOT: SELECT Store, Month, Sales FROM MonthlySales UNPIVOT (Sales FOR Month IN ([Jan], [Feb], [Mar])) AS Unpvt; uses correct syntax for this.
      3. Step 3: Evaluate other options

        PIVOT aggregates rows into columns (wrong direction), JOIN is complex and unnecessary, GROUP BY alone doesn't reshape columns.
      4. Final Answer:

        Use UNPIVOT: SELECT Store, Month, Sales FROM MonthlySales UNPIVOT (Sales FOR Month IN ([Jan], [Feb], [Mar])) AS Unpvt; -> Option A
      5. Quick Check:

        Unpivot columns to rows = Use UNPIVOT: SELECT Store, Month, Sales FROM MonthlySales UNPIVOT (Sales FOR Month IN ([Jan], [Feb], [Mar])) AS Unpvt; [OK]
      Hint: Unpivot columns to rows using UNPIVOT with FOR and IN [OK]
      Common Mistakes:
      • Using PIVOT instead of UNPIVOT
      • Trying to reshape with GROUP BY only
      • Overcomplicating with JOINs
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard