SQL 40

[HackerRank : SQL - oracle] Weather Observation Station 15

[문제] 137.2345보다 작은 STATION에서 가장 큰 북위도(LAT_N)에 대해 서경(LONG_W)을 쿼리하십시오. 답을 소수점 이하 4자리로 반올림합니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다 [풀이] SELECT ROUND(LONG_W,4) FROM station WHERE LAT_N = (SELECT MAX(LAT_N) FROM station WHERE LAT_N < 137.2345); ROUND(컬럼, 표시 할 소수자릿수) : LONG_W의 소수4번째까지 출력해야하므로 반올림 함수인 ROUND를 활용하여 출력. LAT_N 을 위에서 제시한 조건으로 적용시켜야 하므로 'LAT_N = (서브쿼리)' 처럼 서브쿼리를 적용. MAX(컬럼) : WHERE 조건에 해당하는 컬럼 L..

DB/SQL 2022.10.05

[HackerRank : SQL - oracle] Weather Observation Station 14

[문제] STATION에서 Northern Latitudes(LAT_N)의 가장 큰 값을 쿼리하십시오. 소수 자리에 대한 답을 잘라냅니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND(MAX(LAT_N),4) FROM station WHERE LAT_N < 137.2345; ROUND(집계함수(컬럼),표시할소수자리수) : 반올림 함수인 ROUNT 안에 최대값을 구하는 집계함수 MAX 가 있고, 집계 함수안에 WHERE조건에 해당하는 컬럼값과 원하는 표시 할 소수자리수를 기재. MAX : 최대값 집계 함수

DB/SQL 2022.10.05

[HackerRank : SQL - oracle] Weather Observation Station 13

[문제] 38.7880보다 크고 137.2345보다 작은 값을 갖는 스테이션에서 북위도(LAT_N)의 합계를 쿼리합니다. 답을 소수점 이하 네 자리로 잘라라. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT ROUND(SUM(LAT_N),4) FROM station WHERE LAT_N > 38.7880 AND LAT_N < 137.2345; ROUND : 반올림 함수 ROUND(SUM(컬럼), 소수점표시자릿수) : 반올림 함수인 ROUND 안에 합계를 구하는 집계함수인 SUM안에 구할 컬럼을 지정. 컬럼은 WHERE 조건을 걸어주었기 때문에 이 조건에 맞는 값이 SUM 집계 함수와 지정한 소수자릿수로 필터링되어 출력.

DB/SQL 2022.10.05

[HackerRank : SQL - oracle ] Weather Observation Station 12

[문제] 모음으로 시작하지 않고 모음으로 끝나지 않는 스테이션에서 도시 이름 목록을 쿼리합니다. 결과에 중복 항목을 포함할 수 없습니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT DISTINCT city FROM station WHERE NOT REGEXP_LIKE(city,'^[aeiou]','i') and NOT REGEXP_LIKE(city,'[aeiou]$','i'); SELECT DISTINCT : 중복제거 NOT REGEXP_LIKE : 조건을 제외하는 정규식 NOT REGEXP_LIKE(column, '^[조건문자열]', '옵션') : ^는 조건문자열의 처음문자에 해당하는 기호 NOT REGEXP_LIKE(column, '[조건문자열]$','옵션') :..

DB/SQL 2022.10.05

[HackerRank : SQL - oracle] Weather Observation Station 11

[문제] 스테이션에서 모음으로 시작하지 않거나 모음으로 끝나지 않는 도시 이름 목록을 쿼리합니다. 결과에 중복 항목을 포함할 수 없습니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT DISTINCT city FROM station WHERE NOT REGEXP_LIKE (city,'^[aeiou]','i') or NOT REGEXP_LIKE (city, '[aeiou]$','i'); SELECT DISTINCT : 중복제거 NOT REGEXP_LIKE : 앞에 NOT을 붙였기때문에 ()안의 조건을 제외하는 정규식이 출력됨 NOT REGEXP_LIKE (column, '^[aeiou]', '옵션') : ^는 앞글자에 aeiou가 붙어있는 데이터, 옵션 i 는 대소문자 ..

DB/SQL 2022.10.05

[HackerRank : SQL - oracle] Weather Observation Station 10

[문제] 스테이션에서 모음으로 끝나지 않는 도시 이름 목록을 쿼리합니다. 결과에 중복 항목을 포함할 수 없습니다. 입력 형식 STATION 테이블은 다음과 같이 설명됩니다. [풀이] SELECT DISTINCT city FROM station WHERE NOT REGEXP_LIKE(city,'[aeiou]$','i'); SELECT DISTINCT : 중복제거 NOT REGEXP_LIKE (column, '[제외할문자열]$', '옵션') : () 조건을 제외한 결과값을 출력하는 정규식, i 옵션은 대소문자 통합

DB/SQL 2022.10.05

[HackerRank : SQL - oracle] Weather Observation Station 9

[문제] 모음으로 시작하지 않는 STATION에서 도시 이름 목록을 쿼리하세요. 당신의 결과는 중복을 포함할 수 없습니다. 입력 형식 STATION 테이블은 다음과 같이 설명되어 있습니다 [풀이] SELECT DISTINCT city FROM station WHERE lower(substr(city,1,1)) not in (‘a’,’e’,’i’,’o’,’u’); lower : 소문자로 바꿔준다 upper substr(column, 시작index, 갯수) : 문자열을 잘라온다 (즉, 1번째부터 시작하여 1개의 개수를 가져오면 첫번째 자리수의 값을 가져올 수 있다) not in ( ) : 포함되어있지않을 값들을 넣어준다

DB/SQL 2022.09.26

[HackerRank : SQL - oracle] Weather Observation Station 8

[문제] 모음(즉, a, e, i, o 및 u)이 있는 STATION의 CITY 이름 목록을 첫 번째와 마지막 문자로 쿼리하십시오. 당신의 결과는 중복을 포함할 수 없습니다. 입력 형식 STATION 테이블은 다음과 같이 설명되어 있습니다 [풀이] SELECT DISTINCT city FROM station WHERE regexp_like(city,’^[aeiou]’,’i’) and regexp_like(city,’[aeiou]$’,’i’); DISTINCT : 중복제거 (select 뒤에 기재하여 사용한다) REGEXP_LIKE(column, ‘^[찾고자하는 문자열]’, ‘옵션’) : 정규식 i : 대소문자 구분하지 않는것. ignore과 같다. (regexp_like는 대소문자 구분하기때문에 옵션 ‘..

DB/SQL 2022.09.26

[HackerRank: SQL - oracle] Weather Observation Station 7

[문제] STATION에서 모음(a, e, i, o, u)으로 끝나는 도시 이름 목록을 쿼리합니다. 결과에 중복 항목을 포함할 수 없습니다. 입력 형식 STATION 테이블은 다음과 같이 설명합니다 [풀이] SELECT DISTINCT city FROM station WHERE city LIKE ('%a') OR city LIKE ('%e') OR city LIKE ('%i') OR city LIKE ('%o') OR city LIKE ('%u'); DISTINCT 는 SELECT 다음에 넣어준다. 중복제거를 해준다. LIKE 연산자를 이용해 뒷자리가 a,e,i,o,u에 해당하는 값들의 조건을 만들어준다.

DB/SQL 2022.09.24

[HackerRank : SQL - oracle] Weather Observation Station 6

[문제] STATION에서 모음(즉, a, e, i, o 또는 u)으로 시작하는 도시 이름 목록을 쿼리하세요. 당신의 결과는 중복을 포함할 수 없습니다. 입력 형식 스테이션 테이블은 다음과 같이 설명되어 있습니다. [풀이] SELECT city FROM station WHERE (substr(city,1,1)=‘A’ OR substr(city,1,1)=‘E’ OR substr(city,1,1)=‘I’ OR substr(city,1,1)=‘O’ OR substr(city,1,1)=‘U’); substr == subString (substr은 oracle에서 사용) substr(column, 시작Index, 갯수) [또 다른 방법] SELECT DISTINCT CITY FROM STATION WHERE RE..

DB/SQL 2022.09.23