반응형

전체 글 87

[MYSQL] PROGRAMMERS_년, 월, 성별 별 상품 구매 회원 수 구하기

SELECT YEAR(SALES_DATE)YEAR, MONTH(SALES_DATE)MONTH, GENDER,COUNT(distinct i.USER_ID)USERS FROM USER_INFO as i,ONLINE_SALE as o WHERE i.USER_ID = o.USER_ID AND GENDER is not null GROUP BY 1,2,3 ORDER BY 1,2,3 문제 USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문 작성. 결과는 년, 월, 성별을 기준으로 오름차순 정렬. 이때, 성별 정보가 없는 경우 결과에서 제외. 뭔가 약간 애매한 문제 였다. 조건 자체는 쉬운데 뭘해야할지 애매한... 먼저 두개의 테이블을 유니크한 값인..

[MYSQL] PROGRAMMERS_서울에 위치한 식당 목록 출력하기

SELECT i.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, ROUND(AVG(REVIEW_SCORE),2) as SCORE FROM REST_INFO as i, REST_REVIEW as r WHERE i.REST_ID = r.REST_ID AND ADDRESS like "서울%" GROUP BY 1 ORDER BY 6 desc, 4 desc 문제 REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림, 결과는 평균점수를 기준으로 내림차순 정렬 후 평균점수가 같다면 즐겨찾기수를 기준으..

[MYSQL] PROGRAMMERS_취소되지 않은 진료 예약 조회하기

SELECT a.APNT_NO, PT_NAME, a.PT_NO, a.MCDP_CD, DR_NAME, a.APNT_YMD FROM PATIENT as p ,DOCTOR as d, APPOINTMENT as a WHERE a.MDDR_ID = d.DR_ID AND a.PT_NO = p.PT_NO AND a.MCDP_CD = "CS" AND APNT_YMD like "2022-04-13%" AND APNT_CNCL_YN = "N" ORDER BY APNT_YMD 문제 PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 ..

[MYSQL] PROGRAMMERS_ 5월 식품들의 총매출 조회하기

SELECT p.PRODUCT_ID, p.PRODUCT_NAME, PRICE*sum(AMOUNT) as TOTAL_SALES FROM FOOD_PRODUCT as p, FOOD_ORDER as o WHERE p.PRODUCT_ID = o.PRODUCT_ID AND PRODUCE_DATE like "2022-05%" GROUP BY 1 ORDER BY 3 desc,1 문제 FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성후 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬 크게 어려울게 없는 문제이다. 실수를 할 요소가 있다면 SUM(AMOUNT) 이후 *P..

[MYSQL] PROGRAMMERS_식품분류별 가장 비싼 식품의 정보 조회하기

WITH ms as (SELECT CATEGORY,MAX(PRICE) as MXP FROM FOOD_PRODUCT GROUP BY 1) SELECT a.CATEGORY, MAX(PRICE)MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT as a, ms WHERE a.CATEGORY = ms.CATEGORY AND a.CATEGORY in ('과자', '국', '김치', '식용유') AND PRICE = ms.MXP GROUP BY 1 ORDER BY 2 desc 문제 FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과..

[MYSQL] PROGRAMMERS_보호소에서 중성화한 동물

SELECT distinct i.ANIMAL_ID, i.ANIMAL_TYPE, i.NAME FROM ANIMAL_INS as i, ANIMAL_OUTS as o WHERE i.ANIMAL_ID = o.ANIMAL_ID AND i.SEX_UPON_INTAKE like "Intact%" AND o.SEX_UPON_OUTCOME in ("Spayed Female","Neutered Male") ORDER BY 1 문제 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성 어렵지 않은 문제입니다. (최근 제가쓴 게시글을 보니 가독성이 좋지않아 조금 가독성을 높여 보려합니다) 코드를 어떻게 짤까 살짝 고민..

[MYSQL] PROGRAMMERS_대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

SELECT MONTH(START_DATE)MONTH,CAR_ID,COUNT(CAR_ID) as RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE 1=1 AND DATE_FORMAT(START_DATE,'%Y-%m') between '2022-08' and '2022-10' AND CAR_ID in (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY where 1=1 and DATE_FORMAT(START_DATE,'%Y-%m') between '2022-08' and '2022-10' group by 1 having COUNT(CAR_ID)>=5) GROUP BY 1,2 ORDER BY 1,2 desc 문제 CAR..

[MYSQL] PROGRAMMERS_헤비 유저가 소유한 장소

SELECT ID, NAME, HOST_ID FROM PLACES WHERE HOST_ID in (SELECT HOST_ID FROM PLACES GROUP BY 1 HAVING COUNT(HOST_ID)>=2) ORDER BY 1 문제 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성 조건 자체가 적어서 어렵지는 않다. 하지만 Where in 에 대한 개념이 조금 부족하면 어려울 수 있다. 일단 공간을 둘 이상 등록 한 사람이다. HOST_ID가 >=2 가 되어야 하는 조건을 가져야 한다 (공간 마다 아이디가 마킹되어 있으므로 아이디의 개수가 곧 공간의 개수). 이 조건을 메인쿼리에서 바로 적용하기는 어려..

[MYSQL] PROGRAMMERS_조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

SELECT CONCAT("/","home/grep/src","/",b.BOARD_ID,"/",FILE_ID,FILE_NAME, FILE_EXT)FILE_PATH FROM USED_GOODS_BOARD as b, USED_GOODS_FILE as f WHERE b.BOARD_ID = f.BOARD_ID AND VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD) order by FILE_ID desc 문제 USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬. 기본적인 파일경로는 /home/grep/src/ 이며..

[MYSQL] PROGRAMMERS_자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

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 GROUP BY 1 ORDER BY 1 desc 문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동..

반응형