DB/SQL 40

[HackerRank : SQL - oracle] Employee Salaries

[문제] 월 급여가 $2000 이상인 직원 중 근무한 지 10달 미만인 직원의 직원 이름 목록(예: 이름 속성)을 인쇄하는 쿼리를 작성합니다. 결과를 직원_id 오름차순으로 정렬합니다. 입력 형식 회사의 직원 데이터가 들어 있는 직원 표는 다음과 같이 설명합니다. [풀이] SELECT name FROM employee WHERE salary >= 2000 AND months < 10 ORDER BY employee_id; AND : 2가지의 조건을 합하여 출력하는 연산자 ORDER BY : 기본 ASC(오름차순)으로 정렬 / 내림차순 : DESC

DB/SQL 2022.10.13

[HackerRank : SQL - oracle] Employee Names

[문제] 직원 테이블의 직원 이름 목록(예: 이름 속성)을 알파벳 순으로 인쇄하는 쿼리를 작성합니다. 입력 형식 회사의 직원 데이터가 들어 있는 직원 표는 다음과 같이 설명합니다. 여기서 employee_id는 직원 ID 번호, name은 직원 이름, months는 회사에서 근무한 총 개월 수, 급여는 월 급여입니다. [풀이] SELECT name FROM employee ORDER BY SUBSTR(name,1); SUBSTR(컬럼명,인덱스) : 이름 컬럼의 1번째 문자열을 가져와 기본 정렬인 ASC로 ORDER BY를 이용해 정렬

DB/SQL 2022.10.13

[HackerRank : SQL - oracle] Higher Than 75 Marks

[문제] 75점 이상의 점수를 받은 학생의 이름을 쿼리합니다. 각 이름의 마지막 세 글자로 출력물을 정렬합니다. 두 명 이상의 학생이 같은 마지막 세 글자로 끝나는 이름을 가진 경우(예: Bobby, Robby 등), 오름차순으로 정렬합니다. 이름 열에 는 대문자( A- Z)와 소문자( a- )만 포함 z됩니다. [풀이] SELECT name FROM students WHERE marks > 75 ORDER BY SUBSTR(name,-3),id; SUBSTR(컬럼명,인덱스), 조건2 : 해당 컬럼명의 인덱스에 해당하는 자리의 수를 뽑음. -3은 뒤에서 3번째. 이후 선택사항인 조건2를 지정하여 SUBSTR로 지정해준 조건1의 값이 같을 경우, 조건2로 정렬. (뽑은 이니셜이 같은경우 조건2인 id의 값..

DB/SQL 2022.10.13

[HackerRank : SQL - oracle] The Blunder

[문제] Samantha는 EMPLOYEES 테이블에 있는 모든 직원의 평균 월 급여를 계산해야 했지만 자신의 키보드가 계산을 완료할 때까지 키가 손상되었습니다. 그녀는 계산 착오(0이 제거된 급여 사용)와 실제 평균 급여 간의 차이를 찾는 데 도움을 원합니다. 오류의 양을 계산하는 쿼리를 작성하십시오(예:평균 월 급여)를 계산하고 다음 정수로 반올림합니다. 입력 형식 EMPLOYEES 테이블은 다음과 같이 설명됩니다. [풀이] SELECT CEIL(AVG(salary)-AVG(REPLACE(salary,0,''))) FROM employees; CEIL : 올림 함수 AVG : 평균 집계 함수 REPLACE(컬럼,바꾸기전문자열,바꿀문자열) : 숫자가 들어있는 데이터에서 0을 없애기 위해 바꾸기전문자열에..

DB/SQL 2022.10.13

[HackerRank : SQL - oracle] Weather Observation Station 20

[문제] 중위수는 데이터 집합의 상위 절반과 하위 절반을 구분하는 숫자로 정의됩니다. STATION에서 북위도(LAT_N)의 중위수를 쿼리하고 소수점 4자리까지 반올림합니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND(MIDIAN(LAT_N),4) FROM station; MIDIAN : oracle내장함수로써 중앙값을 구할 때 사용 할 수 있다. mysql에서는 percent_rank() 함수를 사용.

DB/SQL 2022.10.12

[HackerRank : SQL - oracle] Weather Observation Station 2

[문제] STATION 테이블에서 다음 두 값을 쿼리합니다. 1. LAT_N의 모든 값의 합은 소수점 2자리 척도로 반올림됩니다. 2. LONG_W 단위의 모든 값의 합은 소수점 2자리 척도로 반올림됩니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND(MAX(LAT_N),2), ROUND(MAX(LONG_W),2) FROM station; ROUND : 반올림 함수 ROUND(합계 집계함수(컬럼), 표시할 소수자릿수) : 지정한 컬럼의 합을 구하여 반올림후 표시할 소수자릿수를 기재

DB/SQL 2022.10.12

[HackerRank : SQL - oracle] Weather Observation Station 19

[문제] p1(a,c)과 p2(b,d)를 2D 평면의 두 점으로 간주하고, (a,b)는 북위도(LAT_N)의 각 최소값과 최대값이고 (c,d)는 스테이션에서 서경(LONG_W)의 각 최소값과 최대값이다. 점 p1과 p2 사이의 유클리드 거리를 쿼리하고 소수점 4자리를 표시하도록 답변 형식을 지정합니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND( SQRT( POWER(MAX(LAT_N) - MIN(LAT_N),2) + POWER(MAX(LONG_W) - MIN(LONG_W),2) ), 4) FROM station; 중앙값 구하기 문제 ROUND(조건식, 표시할 소수자릿수) : 반올림 함수 SQRT(조건식) : 루트 구하는 함수 POWER(조건값, 제곱수) ..

DB/SQL 2022.10.06

[HackerRank : SQL - oracle] Weather Observation Station 18

[문제] p1(a,b)과 p2(c,d)가 2D 평면의 두 점이라고 가정합니다. a가 북위도(STATION의 LAT_N)에서 최소값과 같아집니다. b는 서부 경도의 최소값과 같다(STATION의 LONG_W). c는 북위도(STATION의 LAT_N)에서 최대값과 같습니다. d는 서부 경도의 최대값과 같다(STATION의 LONG_W). 점 p1과 p2 사이의 맨해튼 거리를 쿼리하고 소수점 4자리 척도로 반올림합니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND((MAX(LAT_N)-MIN(LAT_N))+(MAX(LONG_W)-MIN(LONG_W)),4) FROM station; ROUND : 반올림 함수 ROUND((최대값(컬럼1) - 최소값(컬럼1)) + ..

DB/SQL 2022.10.06

[HackerRank : SQL - oracle] Weather Observation Station 17

[문제] 스테이션에서 가장 작은 북위도(LAT_N)가 38.7780보다 큰 서부 경도(LONG_W)를 쿼리합니다. 답안을 소수점 이하 네 자리로 반올림하시오. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND(MIN(LONG_W),4) FROM station WHERE LAT_N = (SELECT MIN(LAT_N) FROM station WHERE LAT_N > 38.7780); ROUND(MIN(컬럼), 표시할 소수점 자릿수) : 최소값을 구할 컬럼과, 자릿수를 지정. MIN : 최소값 집계 함수. WHERE 출력할 컬럼 = (서브쿼리) : () 안에 출력할 컬럼의 서브쿼리를 작성. 서브쿼리 내용 : station 테이블 안에 컬럼 LAT_N의 값들 중 38...

DB/SQL 2022.10.05

[HackerRank : SQL - oracle] Weather Observation Station 16

[문제] 38.7780보다 큰 스테이션에서 가장 작은 북위도(LAT_N)를 쿼리합니다. 답안을 소수점 이하 네 자리로 반올림하시오. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND(MIN(LAT_N),4) FROM station WHERE LAT_N > 38.7780; ROUND(MIN(컬럼), 표시 할 소수점 자릿수) : 값을 구할 컬럼의 최소값 집계함수인 MIN 과 자릿수를 지정하여 반올림값을 구함. MIN : 최소값 집계함수

DB/SQL 2022.10.05