1. 강원도에 위치한 생산공장 목록 출력하기
SELECT F.FACTORY_ID, F.FACTORY_NAME, F.ADDRESS
FROM FOOD_FACTORY F
WHERE F.ADDRESS LIKE "%강원도%";
2. 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력
SELECT DISTINCT o1.USER_ID, o1.PRODUCT_ID DISTINCT 중복된 결과를 제거함
FROM ONLINE_SALE o1, ONLINE_SALE o2 같은 테이블을 두 번 사용하여 자기 자신을 비교함
WHERE o1.USER_ID = o2.USER_ID 같은 사용자가 동일한 사용자를 찾음(같은 사용자가 여러번 구매)
AND o1.PRODUCT_ID = o2.PRODUCT_ID 같은사용자가 동일한 제품을 구매한 경우
AND o1.SALES_DATE != o2.SALES_DATE 구매날짜가 다른 경우
ORDER BY o1.USER_ID, o1.PRODUCT_ID DESC;
3. 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
ORDER BY A.ANIMAL_ID DESC;
4. 동물 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A
WHERE INTAKE_CONDITION LIKE "Sick"
order by a.animal_id;
5. 동물 보호소에 들어온 동물 중 젊은 동물(not age)의 아이디와 이름을 조회
SELECT a.animal_id, a.name
from animal_ins a
where a.intake_condition not like "Aged"
order by a.animal_id;
6. 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지를 조회하는 쿼리
SELECT a.animal_type, count(*) as count
from animal_ins a
group by a.animal_type animao_type을기준으로그룹화를함/같은 동물 종류끼리 묶음
order by a.animal_type; 결과를 오른차순으로 정렬
7. 동물보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회
SELECT a.datetime
from animal_ins a
order by a.datetime
limit 1; 정렬된 결과에서 첫 번째 행만 선택 / 가장 오래된 datetime값을 하나만 반환
8. 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회
SELECT count(distinct (a.name)) as count
from animal_ins a;
9. 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회
SELECT a.name, count(*) as count
from animal_ins a
where name is not null
group by a.name
having count >= 2
order by a.name;
10. USER_INFO 와 ONLINE_SALE 테이블에서 년, 월, 성별별로 상품을 구매한 회원수를 집계
SELECT year(o.sales_date) year, month(o.sales_date) month, u.gender, count(distinct(u.user_id)) users
from user_info u join online_sale o on u.user_id = o.user_id 사용자가 실제로 판매 내역을 가지고 있는지를 확인
where u.gender is not null
group by year(sales_date), month(sales_date), gender
order by year, month, gender;
'프로그래머스' 카테고리의 다른 글
프로그래머스 문제 풀이 (C) (0) | 2024.09.26 |
---|