일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바
- java
- 알고리즘
- 알고리즘분석
- 클린코드
- 이펙티브자바
- 자료구조
- 도메인 주도 개발 시작하기
- 스프링부트와AWS로혼자구현하는웹서비스
- DDD
- react
- AWS RDS
- jpa
- 네트워크
- CleanCode
- 이팩티브 자바
- 인프런김영한
- mysql
- MariaDB
- 이펙티브 자바
- AWS
- 자바예외
- 자바스터디
- 혼공SQL
- 기술면접
- vue.js
- SQL쿡북
- aop
- 인프런백기선
- 인덱스
- Today
- Total
기록이 힘이다.
[프로그래머스] GROUP BY (Level 3) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/131123
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
즐겨찾기가 가장 많은 식당 정보 출력하기
REST_INFO 테이블에서 음식 종류별로 / 즐겨찾기 수가 가장 많은 /식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작상해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM
REST_INFO
WHERE
(FOOD_TYPE, FAVORITES) IN (
SELECT
FOOD_TYPE,
MAX(FAVORITES) AS MAX_FAVORITES
FROM
REST_INFO
GROUP BY
FOOD_TYPE
)
ORDER BY
FOOD_TYPE DESC;
https://school.programmers.co.kr/learn/courses/30/lessons/164668
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
조건에 맞는 사용자와 총 거래금액 조회하기
USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의/ 총금액이 70만 원 이상인 사람/의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.
SELECT u.USER_ID, u.NICKNAME, SUM(b.PRICE) AS TOTAL_SALES
FROM USED_GOODS_BOARD b
JOIN USED_GOODS_USER u ON b.WRITER_ID = u.USER_ID
WHERE b.STATUS = 'DONE'
GROUP BY u.USER_ID
HAVING SUM(b.PRICE) >= 700000
ORDER BY TOTAL_SALES;
https://school.programmers.co.kr/learn/courses/30/lessons/144855
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
카테고리 별 도서 판매량 집계하기
2022년 1월의 /카테고리 별 /도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 카테고리명을 기준으로 오름차순 정렬해주세요.
SELECT B.CATEGORY ,sum(S.SALES) TOTAL_SALES
FROM BOOK B
JOIN BOOK_SALES S
ON B.BOOK_ID = S.BOOK_ID
WHERE DATE_FORMAT(S.SALES_DATE,"%Y-%m-%d") LIKE "2022-01%"
GROUP BY B.CATEGORY
ORDER BY B.CATEGORY
https://school.programmers.co.kr/learn/courses/30/lessons/157340
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요.
SELECT CAR_ID,
CASE WHEN CAR_ID in
(SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE "2022-10-16" Between START_DATE and END_DATE) THEN "대여중"
else "대여 가능"
end AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY 1
ORDER BY 1 desc
반납 날짜에 대한 표현법을 END_DATE에 한해서 적용해야 하는 걸로 생각하여 시간이 조금 걸렸다. START_DATE에 대해서도 같은 날짜가 적용되는지 확인해주어야 한다.
해당 문제에 대한 생각의 풀이를 아래 링크를 통해 해결할 수 있었다.
https://sqlmater.tistory.com/59
[MYSQL] PROGRAMMERS_자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
SELECT CAR_ID, CASE WHEN CAR_ID in (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE "2022-10-16" Between START_DATE and END_DATE) THEN "대여중" else "대여 가능" end AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY 1 ORDER BY 1
sqlmater.tistory.com
https://school.programmers.co.kr/learn/courses/30/lessons/151139
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요. 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요.
https://sqlmater.tistory.com/62
[MYSQL] PROGRAMMERS_대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
SELECT MONTH(START_DATE)MONTH,CAR_ID,COUNT(CAR_ID) as RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE 1=1 AND DATE_FORMAT(START_DATE,'%Y-%m') between '2022-08' and '2022-10' AND CAR_ID in (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY where 1=1
sqlmater.tistory.com
DATE_FORMAT 함수와 같은 기존에 주어진 함수의 활용에 대해 생각의 힘이 필요해 보인다. 각 문장에 대한 해석을 할 때 어떻게 풀어나갈 것인지 끊어서 해석을 하고 시간 내에서 문제를 풀어낼 수 있도록 많은 경험이 필요하다.
공부한 내용을 통해서 활용의 단계로 나아가는 것이 쉽지는 않지만 쿼리 경험이 적은 만큼 제일 중요한 '시간 내 문제 해결'이라는 목표를 향해 LEVEL4 를 풀어나가기 위해서는 확실한 이해를 통한 풀이가 필요하다.
'SQL' 카테고리의 다른 글
[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.01.20 |
---|---|
[프로그래머스] 입양 시각 구하기(1) (0) | 2024.01.19 |
[프로그래머스] 진료과별 총 예약 횟수 출력하기 (0) | 2024.01.19 |
[프로그래머스] 고양이와 개는 몇 마리 있을까 (0) | 2024.01.19 |
[프로그래머스] 중성화 여부 파악하기 (0) | 2024.01.17 |