출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] '코딩테스트' 태그의 글 목록 (2 Page) :: 하나둘셋넷
728x90

SQL String, Date] 조건에 맞는 사용자 정보 조회하기

-- 코드를 입력하세요
SELECT u.USER_ID, 
    u.NICKNAME, 
    CONCAT(u.CITY, ' ',u.STREET_ADDRESS1,' ', u.STREET_ADDRESS2) as 전체주소, 
    CONCAT(SUBSTRING(u.TLNO, 1,3), 
           '-',SUBSTRING(u.TLNO, 4,4), '-', 
           SUBSTRING(u.TLNO, 8) ) as  전화번호
    FROM USED_GOODS_BOARD b
    INNER JOIN USED_GOODS_USER u on b.WRITER_ID = u.USER_ID

    GROUP BY b.WRITER_ID
    HAVING COUNT(b.WRITER_ID) >= 3
    ORDER BY u.USER_ID DESC;

 

728x90
728x90

 

-- 코드를 입력하세요
SELECT MIN(DATETIME)
    FROM ANIMAL_INS
728x90
728x90

SQL SELECT] 서울에 위치한 식당 목록 출력하기

 

-- 코드를 입력하세요
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(R.REVIEW_SCORE),2) as SCORE
    FROM REST_INFO I
    INNER JOIN(
        SELECT REST_ID, REVIEW_SCORE
        FROM REST_REVIEW
        ) AS R on I.REST_ID = R.REST_ID
    WHERE I.ADDRESS LIKE "서울%"
    GROUP BY REST_ID
    ORDER BY SCORE DESC, FAVORITES DESC

 

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 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