https://www.hackerrank.com/challenges/the-blunder/problem?isFullScreen=true
The Blunder | HackerRank
Query the amount of error in Sam's result, rounded up to the next integer.
www.hackerrank.com
어떤 여자의 키보드의 0 버튼이 고장나서 벌어진 실수...
간단히 replace()를 쓰면 되지만, 다른 문자열 관련 함수도 공부할 수 있었다.
일단 내가 풀었던 방법은
with temp as(select *, replace(salary, 0, '')as miscalculated
from EMPLOYEES)
select ceil(avg(salary) - avg(miscalculated))
from temp
사실 복잡한 쿼리가 아니기 때문에 그냥 from 절에 서브쿼리로 했어도 된다.
잘 정리되어 있는 문자열 관련 함수 링크다 ▼
https://www.goodsapp.org/bbs/board.php?bo_table=program&wr_id=9&sca=SQL
MySQL 문자열 함수 #1 CONCAT, INSERT, REPLACE, INSTR > | 굿스앱
MYSQL 문자열 관련 함수 #1● ASCII(문자) : 문자의 아스키 코드값 리턴.SELECT ASCII('문자');select ascii('A');● CONCAT('문자열1','문자열2','문자열3'...) : 문자열들을 이어준다.select concat('ASP,','PHP,','SQL',' WEB S
www.goodsapp.org
내가 많이 쓸 거 같은 함수만 여기에 정리해놓고, 나머지는 필요할 때마다 위 링크를 참고할 예정이다.
● CONCAT('문자열1','문자열2','문자열3'...) : 문자열들을 이어준다.
select concat('ASP,','PHP,','SQL',' WEB STUDY');
● INSERT('문자열','시작위치','길이','새로운문자열') : 문자열의 시작위치부터 길이만큼 새로운 문자열로 대치
'시작위치' 와 '길이'는 문자열이 아니므로 작은따옴표로 굳이 묶어주지 않아도 된다.
select insert('MySql web study','7','3','offline');
select insert('MySql web study',7,3,'offline');
● REPLACE('문자열','기존문자열','바뀔문자열') : 문자열 중 기존문자열을 바뀔 문자열로 바꾼다.
select replace('MySql web study','web','offline');
● INSTR('문자열','찾는문자열') : 문자열 중 찾는 문자열의 위치값을 출력
--값이 존재하지 않으면 0값 리턴
select instr('MySql web study','s');
select instr('MySql web study','S');
● LEFT('문자열',개수) : 문자열 중 왼쪽에서 개수만큼을 추출.
select left('MySql web study',5);
select left('MySql web study','5');
● RIGHT('문자열',개수) : 문자열 중 오른쪽에서 개수만큼을 추출.
select right('MySql web study',5);
select right('MySql web study','5');
● MID('문자열',시작위치,개수) : 문자열 중 시작위치부터 개수만큼 출력
select mid('MySql web study',7,3);
select mid('MySql web study','7','3');
● SUBSTRING('문자열',시작위치,개수) : 문자열 중 시작위치부터 개수만큼 출력
select substring('Mysql web study',11,5);
select substring('Mysql web study','11','5');
'SQL > HackerRank' 카테고리의 다른 글
[해커랭크 medium] Occupations(변수 선언, partition by)(MySQL) (0) | 2022.03.21 |
---|---|
[해커랭크 medium] SQL Project Planning(카테시안 곱)(MySQL) (0) | 2022.03.16 |
[해커랭크 easy] Weather Observation Station 17(MySQL) (0) | 2022.03.16 |
[해커랭크 easy] Draw The Triangle 2(MySQL) (0) | 2022.03.16 |
[해커랭크 Easy] Draw The Triangle 1(MySQL) (0) | 2022.03.16 |