본문 바로가기
코딩테스트 sql/1단계

1단계(1)

by 세용용용용 2023. 10. 31.

sql쿼리 각 절의 우선 순위

from >>> where >>> select >>> order by >>> group by >>> having >>> limit(이절은 order by 이후 실행)

1. 동물의 아이디와 이름

ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

 

문제 : 동물의 아이디와 이름을 animal_id순으로 조회하는 sql문 작성

 

출력 예시

 

나의 쿼리

SELECT ANIMAL_ID, NAME from ANIMAL_INS order by ANIMAL_ID;

1. select 문을 사용해 animal_id와 name 컬럼을 선택

2. order by 문을 사용해 animal_id 기준으로 정렬

 

2. 아픈 동물 찾기

ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

 

 

문제 : 아픈 동물의 아이디와 이름을 조회하는 sql문

INTAKE_CONDITION이 Sick인 경우가 아픈 동물임

 

나의 쿼리

SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION = 'Sick';

1. select문을 사용해 animal_id와 name컬럼 선택

2. where문을 사용해 intake_condition컬럼이 Sick인 경우만 필터

 

3. 이름이 있는 동물의 아이디

ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

 

문제 : 이름이 있는 동물의 id를 조회하는 sql문 작성

단, id는 오름차순 정렬

 

나의 쿼리

SELECT ANIMAL_ID from ANIMAL_INS where NAME is not null order by ANIMAL_ID;

 

1. select문을 사용해 ANIMAL_ID컬럼 선택

2. where문을 사용해 name컬럼이 null이 아닌 값 필터(is not null)

3. order by문을 사용해 animal_id컬럼 기준 오름차순 정렬

 

4. 여러 기준으로 정렬하기

ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

 

문제 : 동물의 id와 이름, 보호 시작일을 이름 순으로 조회하는 sql문

단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보야줘야됨

 

나의 쿼리

SELECT ANIMAL_ID, NAME, DATETIME from ANIMAL_INS order by NAME, DATETIME desc;

1. select문을 사용해 animal_id, name, datetime 컬럼 선택

2. order by문을 사용해 name컬럼을 먼저 오름차순 정렬후, datetime컬럼 내림차순 정렬

 

5. 역순 정렬하기

ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

 

문제 : 동물의 이름과 보호 시작일을 조회하는 sql문 작성

결과는 animal_id 역순으로 보여주시오

 

나의 쿼리

SELECT NAME, DATETIME from ANIMAL_INS order by ANIMAL_ID desc;

1. select문을 사용해 name, datetime 컬럼 선택

2. order by문을 사용해 animal_id 내림차순으로 정렬

 

6. 어린 동물 찾기

ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

 

문제 : 젊은 동물의 아이디와 이름을 조회하는 sql문 작성

결과는 아이디 순으로 조회

 

나의 쿼리

SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION != 'Aged' order by ANIMAL_ID;

1. select문을 사용해 animal_id, name 컬럼선택

2. where문을 사용해 intake_condition 컬럼이 aged가 아닌것을 필터링(젊은 동물만 필터링)

3. order by문을 사용해 animal_id기준 정렬

 

7. 상위 n개 레코드

ANIMAL_INS 테이블 : 동물 보호소에 들어온 동물 정보

 

문제 : 가장 먼저 들어온 동물의 이름을 조회하는 sql문 작성

 

나의 쿼리

SELECT NAME from ANIMAL_INS order by DATETIME limit 1;

1. select문을 사용해 name컬럼 선택

2. order by문을 사용해 datetime컬럼 오름차순 정렬

3. limit문을 사용해 1개의 레코드만 필터

 

8. 나이 정보가 없는 회원 수 구하기

USER_INFO 테이블 : 의류 쇼핑몰에 가입한 회원 정보

GENDER 컬럼은 비어있거나 0 또는 1의 값을 가짐(0은 남자, 1은 여자)

 

문제 : 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문

이떄 컬럼명은 USERS로 지정

 

나의 쿼리

SELECT count(*) as USERS from USER_INFO where AGE is null;

1. select문을 사용해 count(*) >> 행의 수 카운트 , as 별칭을 사용 users

2. where문을 사용해 age컬럼이 null 인 경우 필터 

 

9. 가장 비싼 상품 구하기

PRODUCT 테이블 : 의류 쇼핑몰에서 판매 중인 상품들의 정보

상품 별로 중복되지 않는 8자리 상품코드 값을 가지며, 앞 2자리는 카테고리 코드를 의미

 

문제 : 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문

이떄 컬럼명은 MAX_PRICE로 지정

 

나의 쿼리

SELECT MAX(PRICE) as MAX_PRICE from PRODUCT;

1. select문을 사용해 price컬럼 최댓값, as 별칭을 사용 max_price

 

10. 경기도에 위치한 식품창고 목록 출력하기

FOOD_WAREHOUSE 테이블 : 식품창고의 정보

 

문제 : 경기도에 위치한 창고의 ID,이름,주소,냉동시설 여부를 조회하는 SQL문 작성

이떄 냉동시설 여부가 NULL인 경우 'N'으로 출력, 결과는 창고ID를 기준으로 오름차순 정렬

 

나의 쿼리

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, 
    CASE 
    when FREEZER_YN is null then 'N' 
    else FREEZER_YN 
    END as FREEZER_YN from FOOD_WAREHOUSE where WAREHOUSE_NAME like '%경기%' order by WAREHOUSE_ID;

1. select문을 사용해warehouse_id, warehouse_name, adderss, freezer_yn 선택

2. case를 사용해 freezer_yn컬럼이 널이면 'N'으로 아니면 기존 값으로 설정

3. where문을 사용해 warehouse_name컬럼 값이 '경기' 를포함한 레코드 필터

4. order by문을 사용해 warehouse_id 기준 오름차순 정렬

'코딩테스트 sql > 1단계' 카테고리의 다른 글

1단계(3)  (2) 2023.11.22
1단계(2)  (2) 2023.11.21