"HR-SQL Occupations"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-</source> +</syntaxhighlight>, -<source +<syntaxhighlight ))
 
(다른 사용자 한 명의 중간 판 2개는 보이지 않습니다)
8번째 줄: 8번째 줄:


==DB2==
==DB2==
<source lang='sql'>
<syntaxhighlight lang='sql'>
</source>
</syntaxhighlight>


==MS SQL==
==MS SQL==
<source lang='sql'>
<syntaxhighlight lang='sql'>
</source>
</syntaxhighlight>


==MySQL==
==MySQL==
<source lang='mysql'>
<syntaxhighlight lang='mysql'>
SET @c1=0, @c2=0, @c3=0, @c4=0;
SET @c1=0, @c2=0, @c3=0, @c4=0;
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
26번째 줄: 26번째 줄:
     WHEN 'Actor' THEN @c4:=@c4+1
     WHEN 'Actor' THEN @c4:=@c4+1
END AS RowNumber,
END AS RowNumber,
CASE WHEN Occupation='Doctor' THEN Name END Name1,
IF(Occupation='Doctor',Name,NULL) AS Name1,
CASE WHEN Occupation='Professor' THEN Name END Name2,
IF(Occupation='Professor',Name,NULL) AS Name2,
CASE WHEN Occupation='Singer' THEN Name END Name3,
IF(Occupation='Singer',Name,NULL) AS Name3,
CASE WHEN Occupation='Actor' THEN Name END Name4
IF(Occupation='Actor',Name,NULL) AS Name4
FROM OCCUPATIONS
FROM OCCUPATIONS
ORDER BY Name
ORDER BY Name
) t GROUP BY RowNumber;
) AS t GROUP BY RowNumber;
</source>
</syntaxhighlight>
<source lang='mysql'>
<syntaxhighlight lang='mysql'>
SET @c1=0, @c2=0, @c3=0, @c4=0;
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
FROM (
SELECT CASE Occupation
    WHEN 'Doctor' THEN @c1:=@c1+1
    WHEN 'Professor' THEN @c2:=@c2+1
    WHEN 'Singer' THEN @c3:=@c3+1
    WHEN 'Actor' THEN @c4:=@c4+1
END AS RowNumber,
CASE WHEN Occupation='Doctor' THEN Name END AS Name1,
CASE WHEN Occupation='Professor' THEN Name END AS Name2,
CASE WHEN Occupation='Singer' THEN Name END AS Name3,
CASE WHEN Occupation='Actor' THEN Name END AS Name4
FROM OCCUPATIONS
ORDER BY Name
) AS t GROUP BY RowNumber;
</syntaxhighlight>
<syntaxhighlight lang='mysql'>
SET @c1=0, @c2=0, @c3=0, @c4=0;
SET @c1=0, @c2=0, @c3=0, @c4=0;
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
44번째 줄: 62번째 줄:
     WHEN Occupation='Actor' THEN @c4:=@c4+1
     WHEN Occupation='Actor' THEN @c4:=@c4+1
END AS RowNumber,
END AS RowNumber,
CASE WHEN Occupation='Doctor' THEN Name END Name1,
CASE WHEN Occupation='Doctor' THEN Name END AS Name1,
CASE WHEN Occupation='Professor' THEN Name END Name2,
CASE WHEN Occupation='Professor' THEN Name END AS Name2,
CASE WHEN Occupation='Singer' THEN Name END Name3,
CASE WHEN Occupation='Singer' THEN Name END AS Name3,
CASE WHEN Occupation='Actor' THEN Name END Name4
CASE WHEN Occupation='Actor' THEN Name END AS Name4
FROM OCCUPATIONS
FROM OCCUPATIONS
ORDER BY Name
ORDER BY Name
) t GROUP BY RowNumber;
) AS t GROUP BY RowNumber;
</source>
</syntaxhighlight>


==Oracle==
==Oracle==
<source lang='sql'>
<syntaxhighlight lang='sql'>
</source>
</syntaxhighlight>

2021년 7월 31일 (토) 10:49 기준 최신판

1 개요[ | ]

HR-SQL Occupations
해커랭크 SQL
문제 DB2 MS SQL MySQL Oracle
HR-SQL Advanced Select e
HR-SQL Type of Triangle
HR-SQL The PADS
HR-SQL Occupations
HR-SQL Binary Tree Nodes
HR-SQL New Companies

2 DB2[ | ]

3 MS SQL[ | ]

4 MySQL[ | ]

SET @c1=0, @c2=0, @c3=0, @c4=0;
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
FROM (
SELECT CASE Occupation
    WHEN 'Doctor' THEN @c1:=@c1+1
    WHEN 'Professor' THEN @c2:=@c2+1
    WHEN 'Singer' THEN @c3:=@c3+1
    WHEN 'Actor' THEN @c4:=@c4+1
END AS RowNumber,
IF(Occupation='Doctor',Name,NULL) AS Name1,
IF(Occupation='Professor',Name,NULL) AS Name2,
IF(Occupation='Singer',Name,NULL) AS Name3,
IF(Occupation='Actor',Name,NULL) AS Name4
FROM OCCUPATIONS
ORDER BY Name
) AS t GROUP BY RowNumber;
SET @c1=0, @c2=0, @c3=0, @c4=0;
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
FROM (
SELECT CASE Occupation
    WHEN 'Doctor' THEN @c1:=@c1+1
    WHEN 'Professor' THEN @c2:=@c2+1
    WHEN 'Singer' THEN @c3:=@c3+1
    WHEN 'Actor' THEN @c4:=@c4+1
END AS RowNumber,
CASE WHEN Occupation='Doctor' THEN Name END AS Name1,
CASE WHEN Occupation='Professor' THEN Name END AS Name2,
CASE WHEN Occupation='Singer' THEN Name END AS Name3,
CASE WHEN Occupation='Actor' THEN Name END AS Name4
FROM OCCUPATIONS
ORDER BY Name
) AS t GROUP BY RowNumber;
SET @c1=0, @c2=0, @c3=0, @c4=0;
SELECT MIN(Name1), MIN(Name2), MIN(Name3), MIN(Name4)
FROM (
SELECT CASE
    WHEN Occupation='Doctor' THEN @c1:=@c1+1
    WHEN Occupation='Professor' THEN @c2:=@c2+1
    WHEN Occupation='Singer' THEN @c3:=@c3+1
    WHEN Occupation='Actor' THEN @c4:=@c4+1
END AS RowNumber,
CASE WHEN Occupation='Doctor' THEN Name END AS Name1,
CASE WHEN Occupation='Professor' THEN Name END AS Name2,
CASE WHEN Occupation='Singer' THEN Name END AS Name3,
CASE WHEN Occupation='Actor' THEN Name END AS Name4
FROM OCCUPATIONS
ORDER BY Name
) AS t GROUP BY RowNumber;

5 Oracle[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}