https://www.hackerrank.com/challenges/the-pads/problem?isFullScreen=true
코드설명
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 |