Header Ads Widget

PIVOT & UNPIVOT in SQL Server

PIVOT & UNPIVOT in SQL Server (हिंदी में)

📊 SQL Server में PIVOT & UNPIVOT – हिंदी में पूरी जानकारी

🔑 (परिभाषा)

PIVOT data को rows से columns में बदलता है, जबकि UNPIVOT data को columns से rows में। यह reports और data analysis के लिए उपयोगी होता है।

📋 Demo Table: Sales

CREATE TABLE Sales (
  Year INT,
  Quarter NVARCHAR(10),
  Amount INT
);

INSERT INTO Sales VALUES
(2024, 'Q1', 10000),
(2024, 'Q2', 15000),
(2024, 'Q3', 12000),
(2024, 'Q4', 18000);

🔄 PIVOT Example

हम चाहते हैं कि quarters rows में न होकर columns में हों:

SELECT * FROM
(
  SELECT Year, Quarter, Amount FROM Sales
) AS SourceTable
PIVOT
(
  SUM(Amount)
  FOR Quarter IN ([Q1], [Q2], [Q3], [Q4])
) AS PivotTable;

🧪 Output:

YearQ1Q2Q3Q4
202410000150001200018000

🔃 UNPIVOT Example

PIVOT के उल्टा – हम Q1, Q2, Q3, Q4 को फिर से row में बदलते हैं:

SELECT Year, Quarter, Amount
FROM
(
  SELECT Year, [Q1], [Q2], [Q3], [Q4] FROM
  (
    SELECT Year, Quarter, Amount FROM Sales
  ) AS SourceTable
  PIVOT (
    SUM(Amount)
    FOR Quarter IN ([Q1], [Q2], [Q3], [Q4])
  ) AS PivotedTable
) AS UnpivotSource
UNPIVOT
(
  Amount FOR Quarter IN ([Q1], [Q2], [Q3], [Q4])
) AS FinalResult;

📊 Difference Table

FeaturePIVOTUNPIVOT
PurposeRows को columns में बदलनाColumns को rows में बदलना
Use CaseReport displayData transformation
RequiredAggregation Functionनहीं
SyntaxPIVOT()UNPIVOT()

🧠 INTERVIEW QUESTIONS (with Answers)

  1. Q: PIVOT का use कब करें?
    Ans: जब row values को column में show करना हो report के लिए।
  2. Q: UNPIVOT कब useful होता है?
    Ans: जब column data को normalize या row format में लाना हो।
  3. Q: क्या PIVOT में aggregation जरूरी है?
    Ans: हाँ, SUM, COUNT, AVG आदि aggregation function जरूरी होते हैं।
  4. Q: क्या हम बिना derived table के PIVOT कर सकते हैं?
    Ans: नहीं, PIVOT हमेशा derived subquery पर होता है।
  5. Q: UNPIVOT से performance impact होता है?
    Ans: हाँ, large data पर यह costly हो सकता है।

📘 यह पोस्ट Job Oriented Academy द्वारा data analysis सीखने वालों के लिए तैयार की गई है।

Post a Comment

0 Comments