https://www.hackerrank.com/challenges/the-pads/problem?isFullScreen=true
The PADS | HackerRank
Query the name and abbreviated occupation for each person in OCCUPATIONS.
www.hackerrank.com
코드설명
UNION + ORDER BY + STRING || 을 활용합니다.
처음에 잘못작성했었던 방식입니다.
1. 문자열 리터럴로는 " " 가 아닌 ' '를 사용해야합니다.
2. UNION할시에 각각의 SQL은 ORDER BY를 각각 적용하지 못합니다.
아래의 코드가 과연맞을까요?
SELECT O.NAME || '(' || SUBSTR(O.OCCUPATION, 1, 1) || ')' FROM OCCUPATIONS O -- ORDER BY O.NAME UNION SELECT 'There are a total of ' || COUNT(O.NAME) || ' ' || LOWER(O.OCCUPATION) || 's.' FROM OCCUPATIONS O GROUP BY O.OCCUPATION; -- ORDER BY COUNT(O.NAME) ASC;
맞습니다.
만약 ORDER BY 가 두개의 쿼리 모두에 존재한다면 안되겠지요.
3. UNION 할시에는 컬럼의 개수가 일치해야 합니다.
ORACLE 코드
정답코드1입니다.
SELECT * FROM (SELECT O.NAME || '(' || SUBSTR(O.OCCUPATION, 1, 1) || ')' FROM OCCUPATIONS O UNION SELECT 'There are a total of ' || COUNT(O.NAME) || ' ' || LOWER(O.OCCUPATION) || 's.' FROM OCCUPATIONS O GROUP BY O.OCCUPATION )
'SQL > HackerRank' 카테고리의 다른 글
[SQL][HackerRank] Revising Aggregations - The Sum Function - SUM ORACLE (0) | 2024.10.02 |
---|---|
[SQL][HackerRank] Revising Aggregations - The Count Function - COUNT ORACLE (0) | 2024.10.01 |
[SQL][HackerRank] Employee Names - CASE WHEN ORACLE (0) | 2024.09.30 |
[SQL][HackerRank] Employee Names - SELECT + ORDER BY ORACLE (0) | 2024.09.30 |
[SQL][HackerRank] Employee Names - SELECT + ORDER BY ORACLE (0) | 2024.09.30 |