We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
ROW_NUMBER(): Assigns a unique number to each row.
PARTITION BY Occupation: Resets the row number for each occupation group.
ORDER BY Name: Sorts names alphabetically within each occupation group.
SELECT
MAX(CASE WHEN Occupation = 'Doctor' THEN Name END) AS Doctor,
MAX(CASE WHEN Occupation = 'Professor' THEN Name END) AS Professor,
MAX(CASE WHEN Occupation = 'Singer' THEN Name END) AS Singer,
MAX(CASE WHEN Occupation = 'Actor' THEN Name END) AS Actor
FROM(
SELECT Name, Occupation,
ROW_NUMBER() OVER (PARTITION BY Occupation ORDER BY NAME)AS RN
FROM OCCUPATIONS
) AS SubQuery
GROUP BY RN
ORDER BY RN
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Occupations
You are viewing a single comment's thread. Return to all comments →
SELECT MAX(CASE WHEN Occupation = 'Doctor' THEN Name END) AS Doctor, MAX(CASE WHEN Occupation = 'Professor' THEN Name END) AS Professor, MAX(CASE WHEN Occupation = 'Singer' THEN Name END) AS Singer, MAX(CASE WHEN Occupation = 'Actor' THEN Name END) AS Actor FROM( SELECT Name, Occupation, ROW_NUMBER() OVER (PARTITION BY Occupation ORDER BY NAME)AS RN FROM OCCUPATIONS ) AS SubQuery GROUP BY RN ORDER BY RN