여러 기준으로 정렬하기
https://school.programmers.co.kr/learn/courses/30/lessons/59404
-- FROM 동물의 정보를 담은 테이블에서
-- SELECT 아이디와 이름, 보호 시작일을 조회
-- ORDER BY 1. 이름순 정렬, 2. 보호 시작일이 늦은 순으로 정렬
SELECT animal_id, name, datetime
FROM animal_ins
ORDER BY name, datetime DESC
이름에 el이 들어가는 동물 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/59047
-- FROM 동물의 정보를 담은 테이블에서
-- WHERE 이름에 'el'이 들어가는 개의(대소문자 구분 X)
-- SELECT 아이디와 이름을 조회
-- ORDER BY 이름순으로
SELECT animal_id, name
FROM animal_ins
WHERE name LIKE '%el%' AND animal_type = 'Dog'
ORDER BY name
나이 정보가 없는 회원 수 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/131528
-- FROM 회원정보를 담은 테이블에서
-- WHERE 나이 정보가 없는 회원의
-- SELECT 인원 수를 조회
SELECT count(user_id)
FROM user_info
WHERE age IS NULL
가장 비싼 상품 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/131697
-- FROM 판매 중인 상품들의 정보를 담은 테이블에서
-- WHERE 가장 높은 판매가를 -> max 사용
-- SELECT 컬럼명을 MAX_PRICE로 하여 조회
SELECT MAX(price) AS MAX_PRICE
FROM product
-- 아래와 같이 조회도 가능하지만 데이터가 많은 경우 시간이 오래걸림
SELECT price AS MAX_PRICE
FROM product
ORDER BY price DESC limit 1
NULL 처리하기
https://school.programmers.co.kr/learn/courses/30/lessons/59410
-- FROM 동물의 정보를 담은 테이블에서
-- WHERE 동물의 이름이 없으면 'No name'으로 -> IFNULL 사용
-- SELECT 생물 종, 이름, 성별 및 중성화 여부를
-- ORDER BY 아이디순으로 조회
SELECT animal_type, IFNULL(name, 'No name'), sex_upon_intake
FROM animal_ins
ORDER BY animal_id
경기도에 위치한 식품창고 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131114
-- FROM 식품창고의 정보를 담은 테이블에서
-- WHERE 1. '경기도'에 위치
-- 2. 냉동실 여부가 NULL이면 'N'으로 대체 -> IFNULL 사용
-- SELECT 창고의 ID, 이름, 주소, 냉동시설 여부를 조회
SELECT warehouse_id, warehouse_name, address, IFNULL(freezer_yn, 'N')
FROM food_warehouse
WHERE address LIKE '경기도%'
강원도에 위치한 생산공장 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131112
-- FROM 식품공장의 정보를 담은 테이블에서
-- WHERE '강원도'에 위치한
-- SELECT 식품공장의 공장 ID, 공장 이름, 주소를 조회
-- ORDER BY 공장ID순으로
SELECT factory_id, factory_name, address
FROM food_factory
WHERE address LIKE '강원도%'
ORDER BY factory_id
DATETIME에서 DATE로 형 변환
https://school.programmers.co.kr/learn/courses/30/lessons/59414
-- FROM 동물의 정보를 담은 테이블에서
-- SELECT 동물의 아이디와 이름, 들어온 날짜를 조회
-- ORDER BY 아이디순으로
SELECT animal_id, name, DATE_FORMAT(datetime, '%Y-%m-%d')
FROM animal_ins
ORDER BY animal_id
-- DATE_FORMAT에서 년도 표시
-- Y -> 2015, y -> 15
-- M -> January, -> 01
-- D -> 29th, d -> 29
흉부외과 또는 일반외과 의사 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/132203
-- FROM 의사 정보를 담은 테이블에서
-- WHERE 진료과가 'CS'이거나 'GS'인
-- SELECT 의사의 이름, 의사ID, 진료과, 고용일자를 조회
-- ORDER BY 1. 고용일자를 기준으로 내림차순, 2. 이름을 기준으로 오름차순 정렬
SELECT dr_name, dr_id, mcdp_cd, DATE_FORMAT(hire_ymd, '%Y-%m-%d')
FROM doctor
WHERE mcdp_cd = 'CS' OR mcdp_cd = 'GS'
ORDER BY hire_ymd DESC, dr_name
-- 날짜를 출력 예시처럼 년-월-일만 보이게 하지 않아서 틀렸었음
가격이 제일 비싼 식품의 정보 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131115
-- FROM 식품의 정보를 담은 테이블에서
-- WHERE 가격이 제일 비싼 식품의
-- SELECT ID, 이름, 코드, 분류, 가격을 조회
SELECT *
FROM food_product
ORDER BY price DESC limit 1
-- 두 번째 방법으로도 조회 가능
SELECT *
FROM food_product
WHERE price = (SELECT max(price) FROM food_product)
-- subquery를 배운 후엔 subquery만 계속 쓰게되고
-- limit를 배운 후엔 limit만 계속 쓰게 된다.
'SQL > SQL문제풀이' 카테고리의 다른 글
Programmers SQL 문제 풀이 51 ~ 60 (0) | 2024.04.25 |
---|---|
Programmers SQL 문제 풀이 41 ~ 50 (0) | 2024.04.16 |
Programmers SQL 문제 풀이 31 ~ 40 (0) | 2024.04.14 |
Programmers SQL 문제 풀이 21 ~ 30 (0) | 2024.04.12 |
Programmers SQL 문제 풀이 1 ~ 10 (0) | 2024.04.12 |