반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Oracle
- 코딩
- 인덱스튜닝
- 인덱스
- 백트래킹
- S3
- snowflake
- 개발
- Join
- 쿼리
- 결합인덱스란
- DB
- sql
- storage_integration
- 데이터베이스
- 결합인덱스조건
- 율코딩
- HackerRank
- 조인
- 자료구조
- Index
- 오라클
- dbeaber
- 백준
- 데이터분석
- AWS
- MySQL
- 알고리즘
- 문제풀이
- dfs
Archives
- Today
- Total
율코딩
[MySql/HackerRank] Occupations 문제 풀이 본문
반응형
https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true
occupation 별로 순서대로 리턴을 해줘야하니 ROW_NUMBER 함수를 사용했다.
GROUP BY는 GROUP BY에 정의한 내용(컬럼 또는 변형된 컬럼)만 SELECT절에 그대로 사용할 수 있다. GROUP BY에 정의하지 않은 컬럼을 SELECT절에서 사용하려면 반드시 집계함수 처리를 해야 한다.
그래서 나는 MAX 함수를 사용하였다. 사실 MAX든, MIN 이든 상관이 없다.
SELECT MAX(CASE WHEN Occupation = 'Doctor' THEN name END)
,MAX(CASE WHEN Occupation = 'Professor' THEN name END)
,MAX(CASE WHEN Occupation = 'Singer' THEN name END)
,MAX(CASE WHEN Occupation = 'Actor' THEN name END)
FROM (SELECT *
,ROW_NUMBER() over (PARTITION BY Occupation ORDER BY name) rn
FROM OCCUPATIONS) t
GROUP BY rn
반응형
'SQL > HackerRank' 카테고리의 다른 글
[MySQL/HackerRank] Contest Leaderboard 문제 풀이 (0) | 2022.05.22 |
---|---|
[MySQL/HackerRank] Challenges 문제 풀이 (0) | 2022.05.22 |
[MySQL/HackerRank] Top Competitors 문제풀이 (0) | 2022.05.22 |
[MySQL/HackerRank] Ollivander's Inventory 문제풀이 (0) | 2022.05.22 |
[MySQL/HackerRank] Binary Tree Nodes 문제풀이 (0) | 2022.05.13 |
Comments