SQL 연습 문제 모음 LVL 2

유승선 ·2022년 10월 29일
0

SQL, JPQL

목록 보기
4/9

년도를 조심하면서 잘 출력해야한다. 특정한 달을 목표로 둘경우 MONTH를 사용할 수 있는걸 배웠다

-- 코드를 입력하세요
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE 
WHERE MONTH(DATE_OF_BIRTH) = 3 
      AND TLNO IS NOT NULL 
      AND GENDER = 'W' 
ORDER BY MEMBER_ID ASC 

판매가 * 판매량의 합계를 출력해야 하고 SUM 함수를 쓰면 꼭 GROUP BY 를 함께 써줘야한다. 추가적으로 정렬 기준이 두가지가 있다. 내림차순 그리고 오름차순. 이때는 두개 다 써주면 된다.

-- 코드를 입력하세요
SELECT P.PRODUCT_CODE, SUM(P.PRICE * O.SALES_AMOUNT) as SALES 
FROM PRODUCT as P
LEFT JOIN OFFLINE_SALE as O ON P.PRODUCT_ID = O.PRODUCT_ID 
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, PRODUCT_CODE ASC

SQL 은 알면 알수록 너무 신기한거같다;; substr 같은 개념으로 PRODUCT CODE를 PARSING 해야 했는데 LEFT 라는것을 쓰면은 된다한다. 그리고 COUNT 를 GROUP BY 할때 쓰는 컬럼 기준으로 하면 끝.

-- 코드를 입력하세요
SELECT LEFT(PRODUCT_CODE,2) as CATEGORY, COUNT(PRODUCT_ID) as PRODUCTS 
FROM PRODUCT 
GROUP BY CATEGORY

가격이 MAX 인거를 출력해주면 된다. 그런데 여기서 솔직히 어떻게 할지 잘 몰랐는데 그냥 WHERE 문에서 PRICE 맥스를 찾으면 됐었다.

-- 코드를 입력하세요
SELECT * FROM FOOD_PRODUCT 
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) 

또 DATE를 가지고 뭔가 하는줄 알았는데 전에 예시와 다르게 이번꺼는 2022년 기록만 뽑으면 되기 때문에 MONTH 함수 없이 그냥 LIKE 함수로 끝냈다.

-- 코드를 입력하세요
SELECT MCDP_CD as '진료과코드', COUNT(MCDP_CD) as '5월예약건수'
FROM APPOINTMENT 
WHERE APNT_YMD LIKE "2022-05%" 
GROUP BY MCDP_CD
ORDER BY COUNT(MCDP_CD) ASC, MCDP_CD ASC 

SUM이랑 GROUP BY 를 적절히 사용하면 되는 문제였다.

-- 코드를 입력하세요
SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) as TOTAL_ORDER
FROM FIRST_HALF as F
LEFT JOIN ICECREAM_INFO as I ON F.FLAVOR = I.FLAVOR 
GROUP BY INGREDIENT_TYPE
profile
성장하는 사람

0개의 댓글