Home

Occupations

Link

Tables

erDiagram
	occupations {
		Name String
		Occupstion String
	}
Mermaid
복사

DataFlow

left join or right join의 경우 기준이 바뀌지 않도록 join하는 방법
pivot 문제 -> row number 사용

Answer

WITH d AS ( SELECT Name, ROW_NUMBER() OVER(ORDER BY Name ASC) AS rn FROM Occupations WHERE Occupation = 'Doctor' ), p AS ( SELECT Name, ROW_NUMBER() OVER(ORDER BY Name ASC) AS rn FROM Occupations WHERE Occupation = 'Professor' ), s AS ( SELECT Name, ROW_NUMBER() OVER(ORDER BY Name ASC) AS rn FROM Occupations WHERE Occupation = 'Singer' ), a AS ( SELECT Name, ROW_NUMBER() OVER(ORDER BY Name ASC) AS rn FROM Occupations WHERE Occupation = 'Actor' ), r AS ( SELECT rn FROM d UNION SELECT rn FROM p UNION SELECT rn FROM s UNION SELECT rn FROM a ) SELECT d.Name AS Doctor, p.Name AS Professor, s.Name AS Singer, a.Name AS Actor FROM r LEFT JOIN d ON r.rn = d.rn LEFT JOIN p ON r.rn = p.rn LEFT JOIN s ON r.rn = s.rn LEFT JOIN a ON r.rn = a.rn ORDER BY r.rn;
SQL
복사