Advanced SQL: Using UNPIVOT()

365 Days of Daily Coding: Day 124

I am an early bird today. Yay! I just bought an alteryx course in udemy and I am happy to be working on it soon. One of my acquaintance says it’s an extremely easy tool to use and one can easily learn it in the matter of 2-3 hours. 🙂

Puzzle 8:

I tried the solution for the above puzzle in oracle environment here.

WITH temp As (
Select 'Alpha' As Workflow, 0 AS Case1, 0 AS Case2, 0 AS Case3 FROM Dual Union All
Select 'Bravo' As Workflow, 0 AS Case1, 1 AS Case2, 1 AS Case3 FROM Dual Union All
Select 'Charlie' As Workflow, 1 AS Case1, 0 AS Case2, 0 AS Case3 FROM Dual Union All
Select 'Delta' As Workflow, 0 AS Case1, 0 AS Case2, 0 AS Case3 FROM Dual
)
Select Workflow, Case1+Case2+Case3 As Passed
From temp;

Solution as suggested in the site

SELECT	Workflow, SUM(PassFail) AS PassFail
FROM	(
		SELECT Workflow,Case1,Case2,Case3
		FROM temp
		) 
UNPIVOT (PassFail FOR CaseNumber IN (Case1,Case2,Case3))
GROUP BY Workflow
ORDER BY Workflow;

Leave a comment