반응형
프로그래머스 《주문량이 많은 아이스크림들 조회하기》
@ Level 4
@ JOIN
7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.
SELECT a.flavor
FROM first_half a
JOIN july b ON a.flavor = b.flavor
GROUP BY a.flavor
ORDER BY SUM(a.total_order)+SUM(b.total_order) desc
LIMIT 3;
프로그래머스 《즐겨찾기가 가장 많은 식당 정보 출력하기》
@ Level 3
@ GROUP BY
REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
GROUP BY 사용하지 않은 경우
SELECT food_type, rest_id, rest_name, favorites
FROM (
SELECT
food_type, rest_id, rest_name, favorites,
MAX(favorites) OVER (PARTITION BY food_type) max_f
FROM rest_info
) t
WHERE favorites = max_f
ORDER BY food_type DESC;
이건 JOIN으로 풀었을 때 ~
SELECT a.food_type, rest_id, rest_name, favorites
FROM rest_info a
LEFT JOIN (
SELECT food_type, MAX(favorites) max_f
FROM rest_info
GROUP BY food_type
) b ON a.food_type = b.food_type
WHERE a.favorites = b.max_f
ORDER BY a.food_type DESC;
다른 풀이들은 안봐서 더 간단한 게 있는지는 모르겠다
프로그래머스 《헤비 유저가 소유한 장소》
@ Level 3
이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.
SELECT id, name, host_id
FROM places
WHERE host_id IN (
SELECT host_id
FROM places
GROUP BY host_id
HAVING COUNT(*) > 1
);
프로그래머스 《오랜 기간 보호한 동물(1)》
@ Level 3
@ JOIN
아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.
SELECT I.name, I.datetime
FROM animal_ins I
LEFT JOIN animal_outs O ON I.animal_id = O.animal_id
WHERE O.datetime IS NULL
ORDER BY I.datetime LIMIT 3;
반응형
'Test' 카테고리의 다른 글
[MySQL] 그룹 스터디 5일 차 (11/14) (1) | 2024.11.14 |
---|---|
[MySQL] 그룹 스터디 4일 차 (11/12) (0) | 2024.11.13 |
[MySQL] 프로그래머스 《그룹별 조건에 맞는 식당 목록 출력하기》 (0) | 2024.10.29 |
[MySQL] 그룹 스터디 2일 차 (10/21) (2) | 2024.10.22 |
[Python] 프로그래머스 코딩테스트 입문 Lv.0 문제 모음 (2) (0) | 2024.10.21 |