1. 진료과별 총 예약 횟수 출력하기
코딩테스트 연습 - 진료과별 총 예약 횟수 출력하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
회고 |
- 놀라운 사실,,, SELECT문에서 AS 생략 가능이엇음 ㄷ ㄷ - ORDER BY 쓸 때 그냥 열 순서로 대체해도 됨 (=ORDER BY 2, 1) - TIMESTAMP여도 DATE_FORMAT사용하면 됨 - 날짜든 시간이든 수치든 BETWEEN-AND로 범위 설정 가능 |
코드 (접은 글) |
더보기
SELECT MCDP_CD AS '진료과 코드', COUNT(MCDP_CD) '5월예약건수'
FROM APPOINTMENT
WHERE DATE_FORMAT(APNT_YMD, '%Y-%m-%d') BETWEEN '2022-05-01' AND '2022-05-31'
GROUP BY MCDP_CD
ORDER BY COUNT(MCDP_CD), MCDP_CD
2. 재구매가 일어난 상품과 회원 리스트 구하기
코딩테스트 연습 - 재구매가 일어난 상품과 회원 리스트 구하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
1. 셀프 조인을 위해 테이블을 A와 B라는 이름으로 새로 만들어 준다 2. 두 테이블의 USER_ID와 PRODUCT_ID가 각각 같은 것을 기준으로 조인해준다. 3. SELECT문에서 DISTINCT를 사용해 하나씩만 나오도록 설정한다. 4. SELECT문에서 어느 테이블의 컬럼을 출력할지 설정한다. 5. WHERE문에서 SALES_DATE가 다른 경우에만 출력하도록 설정 |
회고 |
- 조인하면 SELECT문에서 꼭 어느 컬럼의 열을 출력할지 기재해줘야됨 잊지마!!!!!!!!!!!!!!!!!!!! |
코드 (접은 글) |
더보기
SELECT DISTINCT A.USER_ID, A.PRODUCT_ID
FROM ONLINE_SALE AS A JOIN ONLINE_SALE AS B
ON A.USER_ID = B.USER_ID AND A.PRODUCT_ID = B.PRODUCT_ID
WHERE A.SALES_DATE != B.SALES_DATE
ORDER BY USER_ID, PRODUCT_ID DESC
3. 상품 별 오프라인 매출 구하기
코딩테스트 연습 - 상품 별 오프라인 매출 구하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
1. SUM(PRODUCT.PRICE*OFFLINE_SALE.SALES_AMOUNT) 해야 답 나옴 2. 상품 코드를 기준으로 계산 3. OFFLINE_SALE의 상품 코드를 기준으로 묶는다 |
회고 |
- 난 정말 알리아스도 싫어하고 조인도 싫어하나보다,,, |
코드 (접은 글) |
더보기
SELECT PRODUCT.PRODUCT_CODE, SUM(PRODUCT.PRICE*OFFLINE_SALE.SALES_AMOUNT) SALES
FROM PRODUCT, OFFLINE_SALE
WHERE PRODUCT.PRODUCT_ID = OFFLINE_SALE.PRODUCT_ID
GROUP BY OFFLINE_SALE.PRODUCT_ID
ORDER BY SALES DESC, PRODUCT_CODE
//INNER JOIN 사용한 코드
SELECT PRODUCT.PRODUCT_CODE, SUM(PRODUCT.PRICE*OFFLINE_SALE.SALES_AMOUNT) SALES
FROM PRODUCT INNER JOIN OFFLINE_SALE
ON PRODUCT.PRODUCT_ID = OFFLINE_SALE.PRODUCT_ID
GROUP BY OFFLINE_SALE.PRODUCT_ID
ORDER BY SALES DESC, PRODUCT_CODE
4. 가격대 별 상품 개수 구하기
코딩테스트 연습 - 가격대 별 상품 개수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
1. TRUNCATE를 사용해서 범위를 나눠준다. 2. 위에서 나눈 범위를 내림차순 정렬해준다. 3. PRODUCT_ID를 PRICE_GROUP별로 COUNT |
회고 |
- TRUNCATE가 테이블 데이터 삭제하는걸로만 알고 있었는데 이런식으로도 변형이 가능하군요,, |
코드 (접은 글) |
더보기
SELECT TRUNCATE(PRICE, -4) PRICE_GROUP, COUNT(PRODUCT_ID) PRODUCT
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
5. 카테고리별 상품 개수 구하기
코딩테스트 연습 - 카테고리 별 상품 개수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
회고 |
- 문자 자를때는 LEFT(컬럼, 개수) or RIGTH(컬럼, 개수) or SUBSTR(컬럼, 시작 인덱스, 개수) |
코드 (접은 글) |
더보기
SELECT LEFT(PRODUCT_CODE, 2) CATEGORY, COUNT(PRODUCT_ID) PRODUCTS
FROM PRODUCT
GROUP BY CATEGORY
ORDER BY CATEGORY
'데이터베이스 > MySQL' 카테고리의 다른 글
[MySQL] 프로그래머스스쿨 연습문제 Lv.3 모음1 (0) | 2023.04.27 |
---|---|
[MySQL] 프로그래머스스쿨 연습문제 Lv.2 모음1 (0) | 2023.04.27 |
[MySQL] 데이터 타입 (0) | 2023.02.01 |