SQL 쿼리 연습 73

[Lv.3 / 프로그래머스 / SQL] 조건에 맞는 사용자와 총 거래금액 조회하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) USED_GOODS_BOARD에서 STATUS가 'DONE'인 물건들의 가격 총 합이 70만원 이상인 사용자들을 조회해야 한다. 두 테이블의 정보를 함께 조회해야 하므로 아이디를 기준으로 INNER JOIN을 하였다. 이후, 사용자 아이디별로 PRICE를 합해야 하므로 GROUP BY를 통해 아이디별로 묶어주었다. SELECT USER.USER_ID, USER.NICKNAME, SUM(BOARD.PRICE) AS TOTAL_SALES FROM USED_GOODS_USER AS USER IN..

[Lv.1 / 프로그래머스 / SQL] 강원도에 위치한 생산공장 목록 출력하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) ADDRESS가 강원도로 시작하는 데이터를 조회해야 한다. SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE "강원도%"

[Lv.3 / 프로그래머스 / SQL] 조건에 맞는 사용자 정보 조회하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) USED_GOODS_BOARD 테이블을 WRITER_ID를 기준으로 그룹별로 묶었을 때, 3개 이상 존재하는 사용자 아이디를 조회해야 한다. 해당 조건은 JOIN을 통해 해결한 뒤, 전체 주소와 전화번호를 CONCAT 및 SUBSTRING으로 문제 조건에 맞도록 출력하면 된다. SELECT USER_ID, NICKNAME, CONCAT(CITY," ", STREET_ADDRESS1, " ", STREET_ADDRESS2) AS 전체주소, CONCAT(SUBSTRING(TLNO,1,3), "..

[Lv.1 / 프로그래머스 / SQL] 평균 일일 대여 요금 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) CAR_TYPE이 SUV인 자동차들의 평균 DAILY_FEE를 구해야 한다. 평균은 AVG, 반올림은 ROUND 함수를 통해 구할 수 있다. SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE = "SUV"

[Lv.2 / 프로그래머스 / SQL] DATETIME에서 DATE로 형 변환

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) DATETIME을 DATE형태로 변환하여 출력해야 한다. DATE() 함수를 사용할 경우 값은 DATE 형으로 바뀌나, 출력 형태에 시간이 남아있기 때문에 DATE_FORMAT을 사용해야 한다. SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID

[Lv.2 / 프로그래머스 / SQL] 입양 시각 구하기(1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) DATETIME 타입에서 시간을 추출하여 그룹별로 묶었을 때, 그 개수를 같이 조회해야 한다. HOUR() 함수를 통해 DATETIME에서 시간을 구할 수 있다. SELECT HOUR(DATETIME) AS HOUR, COUNT(ANIMAL_ID) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR HAVING HOUR >= 9 AND HOUR < 20 ORDER BY HOUR

[Lv.3 / 프로그래머스 / SQL] 헤비 유저가 소유한 장소

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 테이블 내에 HOST_ID의 개수가 2개 이상인 데이터들을 조회해야 한다. 우선 HOST_ID의 개수를 세는 쿼리를 작성하고 INNER JOIN을 통해 연결하여 해결했다. SELECT A.ID, A.NAME, A.HOST_ID FROM PLACES AS A INNER JOIN (SELECT HOST_ID, COUNT(HOST_ID) AS CNT FROM PLACES GROUP BY HOST_ID HAVING CNT > 1) AS B ON A.HOST_ID = B.HOST_ID ORDER B..

[Lv.2 / 프로그래머스 / SQL] 중성화 여부 파악하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) SEX_UPON_INTAKE 컬럼에 Neutered, 혹은 Spayed의 포함 여부를 O, X로 표기하는 컬럼을 추가하여 조회해야 한다. CASE, 혹은 IF문을 활용하여 해결할 수 있다. IF SELECT ANIMAL_ID, NAME, IF (SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%", "O", "X") AS "중성화" FROM ANIMAL_INS ORDER BY ANIMAL_ID CASE SELECT ANI..

[Lv.1 / 프로그래머스 / SQL] 이름이 있는 동물의 아이디

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) NAME이 NULL이 아닌 데이터의 ANIMAL_ID를 오름차순으로 조회해야 한다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID

[Lv.2 / 프로그래머스 / SQL] 중복 제거하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 중복과 NULL이 아닌 이름의 개수를 조회해야 한다. DISTINCT를 이용하여 중복을 제거한 항목을 조회할 수 있다. SELECT COUNT(DISTINCT NAME) AS count FROM ANIMAL_INS WHERE NAME IS NOT NULL

반응형