주문량이 많은 아이스크림들 조회하기
1. FLAVOR(아이스크림 맛) 조회
2. UNION을 사용해서 FIRST_HALF 테이블과 JULY 테이블을 합치기
3. GROUP BY 함수를 이용해서 FLAVOR(아이스크림 맛) 별 합계 구하기
4. 테이블은 FLAVOR(아이스크림 맛)만 포함해야 되기 때문에 SUM(TOTAL_ORDER)을 SELECT 구문에 작성하지 않고, ORDER BY 구문에 작성
5. 내림차순(DESC)으로 3개만 출력(LIMIT 3)
▪ UNION와 UNION ALL의 차이점 → UNION은 중복된 데이터를 제거하고 합침 UNION ALL은 중복제거 없이 합침
SELECT FLAVOR
FROM (SELECT * FROM FIRST_HALF
UNION
SELECT * FROM JULY) AS combined_tables
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
LIMIT 3;
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
없어진 기록 찾기
<NOT IN으로 풀기>
1. ANIMAL_OUTS 테이블의 AINIMAL_ID(동물의 아이디)와 NAME(이름) 조회
2. ANIMAL_OUTS 테이블의 ANIMAL_ID(동물의 아이디)에 NOT IN 구문을 사용해서 ANIMAL_INS 테이블의 ANIMAL_ID(동물의 아이디)에 포함되어 있지 않은 데이터만 추출
2. ANIMAL_ID(동물의 아이디) 순으로 정렬
SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID
FROM ANIMAL_INS)
ORDER BY ANIMAL_ID
<LEFT JOIN으로 풀기>
1. ANIMAL_OUTS 테이블의 AINIMAL_ID(동물의 아이디)와 NAME(이름) 조회
2. ANIMAL_OUTS 테이블에 ANIMAL_INS 테이블을 ANIMAL_ID(동물의 아이디)를 기준으로 LEFT JOIN
3. ANIMAL_INS 테이블의 ANIMAL_ID(동물의 아이디)가 NULL인 데이터 추출
4. ANIMAL_ID(동물의 아이디) 순으로 정렬
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS O
LEFT JOIN ANIMAL_INS I
ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY ANIMAL_ID;
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
있었는데요 없었습니다
1. ANIMAL_INS 테이블의 AINIMAL_ID(동물의 아이디)와 NAME(이름) 조회
2. ANIMAL_INS 테이블에 ANIMAL_OUTS 테이블을 ANIMAL_ID(동물의 아이디)를 기준으로 LEFT JOIN
3. ANIMAL_INS의 DATETIME(보호시작일)보다 ANIMAL_OUTS의 DATETIME(입양일)이 더 빠른 데이터 추출
4. ORDER BY 사용해서 DATETIME(보호 시작일)이 빠른 순으로 정렬
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS AS I
LEFT JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.DATETIME > O.DATETIME
ORDER BY I.DATETIME;
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오랜 기간 보호한 동물(1)
1. ANIMAL_INS 테이블의 NAME(이름)과 DATETIME(보호 시작일)을 조회
2. ANIMAL_INS 테이블에 ANIMAL_OUTS 테이블을 ANIMAL_ID(동물의 아이디)를 기준으로 LEFT JOIN
3. ANIMAL_OUTS 테이블의 ANIMAL_ID(동물의 아이디)가 IS NULL인 데이터 추출
4. ORDER BY 사용해서 ANIMAL_INS의 DATETIME(보호 시작일)이 빠른 순으로 정렬
5. LIMIT 3으로 3개만 출력
SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS AS I
LEFT JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.ANIMAL_ID IS NULL
ORDER BY I.DATETIME
LIMIT 3;
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
보호소에서 중성화한 동물
1. ANIMAL_OUT의 ANIMAL_ID(동물의 아이디), ANIMAL_TYPE(생물 종), NAME(이름) 조회
2. ANIMAL_OUT 테이블에 SANIMAL_INS 테이블을 ANIMAL_ID (동물의 아이디), 를 기준으로 LEFT JOIN
3. SEX_UPON_INTAKE(성별 및 중성화 여부)가 ‘Intact’를 포함하고, SEX_UPON_OUTCOME(성별 및 중성화 여부)이 ‘Neutered’이나 ‘Spayed’를 포함하는 데이터 추출
4. ANIMAL_ID(동물의 아이디) 순으로 정렬
SELECT O.ANIMAL_ID, O.ANIMAL_TYPE, O.NAME
FROM ANIMAL_OUTS AS O
LEFT JOIN ANIMAL_INS AS I
ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE SEX_UPON_INTAKE LIKE 'Intact%' AND
(SEX_UPON_OUTCOME LIKE 'Neutered%' OR
SEX_UPON_OUTCOME LIKE 'Spayed%')
ORDER BY ANIMAL_ID
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Language > SQL' 카테고리의 다른 글
[SQL] 프로그래머스 SQL 고득점 Kit GROUP BY (4) (0) | 2024.03.12 |
---|---|
[SQL] 프로그래머스 SQL 고득점 Kit GROUP BY (3) (0) | 2024.03.10 |
[SQL] 프로그래머스 SQL 고득점 Kit GROUP BY (2) (1) | 2024.03.02 |
[SQL] 프로그래머스 SQL 고득점 Kit GROUP BY (1) (0) | 2024.02.26 |
[SQL] 프로그래머스 SQL 고득점 Kit JOIN (2) (0) | 2024.02.19 |