목록데이터 분석/Coding Test (106)
Data Analyst KIM
SELECT CART_ID FROM CART_PRODUCTS WHERE NAME IN ('Milk','Yogurt') GROUP BY CART_ID HAVING COUNT(DISTINCT NAME)>1
WITH cnt AS ( SELECT * , COUNT(HOST_ID) OVER (PARTITION BY HOST_ID) AS cnt FROM PLACES ) SELECT ID , NAME , HOST_ID FROM cnt WHERE cnt >= 2 ORDER BY ID
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 REST_REVIEW r ON i.REST_ID = r.REST_ID WHERE address LIKE '서울%' GROUP BY REST_ID ORDER BY SCORE DESC , FAVORITES DESC
USER_INFO 와 ONLINE_SALE을 INNER JOIN으로 묶어주고 성별 값이 누락인 값은 제외시켜준다. 년도,월,성별 별로 상품을 구매한 회원수를 구해야하기 때문에 년도와 월의 컬럼을 만들어준다. 이 후 WITH를 활용하여 UserSales 테이블을 만들어준다. UserSales 에서 GROUP BY를 이용하여 년도,월,성별에 따라 집계해주고 SELECT절에서 user_id를 세어주는데 회원수이기 때문에 한명의 회원이 10번 구매한 것은 1번으로 봐야한다. 따라서 DISTINCT로 중복을 제거해준다. WITH UserSales AS ( SELECT u.USER_ID AS user_id, u.GENDER, o.SALES_DATE, YEAR(o.SALES_DATE) AS year, MONTH(o...
SELECT a.APNT_NO , p.PT_NAME , a.PT_NO , a.MCDP_CD , d.DR_NAME , a.APNT_YMD FROM APPOINTMENT AS a INNER JOIN PATIENT AS p ON a.PT_NO = p.PT_NO INNER JOIN DOCTOR AS d ON a.MDDR_ID = d.DR_ID WHERE a.APNT_YMD LIKE '2022-04-13%' AND a.APNT_CNCL_YN = 'N' AND a.MCDP_CD ='CS' ORDER BY APNT_YMD
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 AS C GROUP BY CAR_ID ORDER BY CAR_ID DESC