출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] 'my sql' 태그의 글 목록 :: 하나둘셋넷
728x90

SQL SUM, MAX, MIN] 가격이 제일 비싼 식품의 정보 출력하기

 

전체 코드

-- 코드를 입력하세요
SELECT f.PRODUCT_ID,	f.PRODUCT_NAME,	f.PRODUCT_CD, f.CATEGORY, f.PRICE
    FROM FOOD_PRODUCT f
    
    INNER JOIN(
        SELECT MAX(PRICE) AS PRICE
        FROM FOOD_PRODUCT

    ) AS m ON f.PRICE= m.PRICE;

 

 

풀이 순서

1]  PRICE 전체 열에서 PRICE 최대값을 구하기

 

SELECT MAX(PRICE) AS PRICE
FROM FOOD_PRODUCT

 

2]  f.PRICE= m.PRICE 를 통해 INNER JOIN 하여 정답을 출력

728x90
728x90

SQL String, Date] 재구매가 일어난 상품과 회원 리스트 구하기

 

 

-- 코드를 입력하세요
SELECT c.CAR_ID
    FROM CAR_RENTAL_COMPANY_CAR c
    INNER JOIN(
        SELECT CAR_ID, START_DATE
        FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    ) as h on c.CAR_ID = h.CAR_ID
    WHERE MONTH(h.START_DATE) = 10 AND  c.CAR_TYPE = '세단'
    GROUP BY CAR_ID
    ORDER BY CAR_ID DESC;

 

1] CAR_RENTAL_COMPANY_CARCAR_RENTAL_COMPANY_RENTAL_HISTORY 를 CAR_ID 기준으로 INNER JOIN

 

2] MONTH(h.START_DATE) 을 통해 10월에 대여를 시작한 차의 정보를 얻는다.

3] GROUP BY CAR_ID를 사용하면 문제 조건에 따라 중복없이 값을 출력할 수 있다.

728x90
728x90

SQL SELECT] 재구매가 일어난 상품과 회원 리스트 구하기

 

GROUP BY USER_ID를 한다면, USER_ID와 PRODUCT_ID가 모두 같은 행을 출력 가능하고, 이때 COUNT(PRODUCT_ID)가 1보다 큰지 확인

728x90
728x90

SQL IS_NULL] NULL 처리하기

 

 

-- 코드를 입력하세요
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
    FROM ANIMAL_INS
    ORDER BY ANIMAL_ID;

 

 

728x90
728x90

SQL GROUP BY] 즐겨찾기가 가장 많은 식당 정보 출력하기

 

1] FOOD_TYPE 별로 가장 인기가 많은 MAX(FAVORITES) 테이블 만들기

SELECT FOOD_TYPE, MAX(FAVORITES) AS MaxFavorites
        FROM REST_INFO
        GROUP BY FOOD_TYPE

 

 

(1) FROM REST_INFO

(2) GROUP BY FOOD_TYPE

 

 

2] 기존 테이블과 INNER JOIN

-- 코드를 입력하세요
SELECT r.FOOD_TYPE, r.REST_ID, r.REST_NAME, r.FAVORITES
    FROM REST_INFO r
    INNER JOIN(
        
        SELECT FOOD_TYPE, MAX(FAVORITES) AS MaxFavorites
        FROM REST_INFO
        GROUP BY FOOD_TYPE
        
    ) AS max_res ON r.FOOD_TYPE = max_res.FOOD_TYPE 
                    AND r.FAVORITES = max_res.MaxFavorites
    ORDER BY r.FOOD_TYPE DESC;

 

 

(1) FOOD_TYPE이 같고, 기존 테이블 FAVORITES =  최대값 테이블 MaxFavorites 같도록 합친다.

 

주의

-- 코드를 입력하세요
SELECT r.FOOD_TYPE, r.REST_ID, r.REST_NAME, MAX(r.FAVORITES)
    FROM REST_INFO r    
    GROUP BY r.FOOD_TYPE

 

GROUP BY에 속하지 않은 모든 컬럼은 집계 함수 내에 있어야 한다.

 

728x90

+ Recent posts