Sort by

recency

|

2064 Discussions

|

  • + 0 comments

    WITH RankedNames AS ( SELECT Name, Occupation, ROW_NUMBER() OVER (PARTITION BY Occupation ORDER BY Name) AS RowNum FROM OCCUPATIONS ) 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 RankedNames GROUP BY RowNum;

  • + 0 comments

    select max(case when Occupation = 'Doctor' then Name else null end) as Doctor, max(case when Occupation = 'Professor' then Name else null end) as Professor, max(case when Occupation = 'Singer' then Name else null end) as Singer, max(case when Occupation = 'Actor' then Name else null end) as Actor from( select Name, Occupation, row_number() over (partition by Occupation order by Name) as rn from OCCUPATIONS ) as x group by rn

  • + 0 comments

    MS SQL SERVER SOLUTION USING PIVOT

    WITH RankedNames AS (
        SELECT 
            Name,
            Occupation,
            ROW_NUMBER() OVER (PARTITION BY Occupation ORDER BY Name) AS rn
        FROM OCCUPATIONS
    )
    SELECT Doctor, Professor, Singer, Actor
    FROM (
        SELECT Name, Occupation, rn
        FROM RankedNames
    ) AS SourceTable
    
    PIVOT (
        MAX(Name) 
        FOR Occupation IN ([Doctor], [Professor], [Singer], [Actor])
    ) AS PivotTable
    ORDER BY rn;
    
  • + 0 comments

    WITH RankedNames AS ( SELECT Name, Occupation, ROW_NUMBER() OVER (PARTITION BY Occupation ORDER BY Name) AS RowNum FROM OCCUPATIONS ) 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 RankedNames GROUP BY RowNum;

  • + 0 comments

    We can use below Solution for MySQL -

    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 RowNum FROM OCCUPATIONS ) AS RankedData GROUP BY RowNum ORDER BY RowNum;