본문 바로가기

「SQL초급떼기25

chat GPT 활용 MYSQL 소수점 계산 물어보기 코딩테스트를 보다보니 Floor 함수가 가끔 출제되는듯하다!! ceil floor round 반올림 truncate 소수점 지정자리수까지 잘라내어 반환, round 처럼 반환하지 않음 2023. 8. 13.
[프로그래머스sql고득점kit-level4]코딩테스트 연습JOIN5월 식품들의 총매출 조회하기 https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 역시 오랜만에 푸니 date_format 구분 까먹었다!! 다시 복습!!!! 문제 FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. 그래도 맞췄다!!ㅋㅋ -- 코드를 입력하세.. 2023. 8. 13.
[chat GPT]코호트분석 mysql(월별/주별, 6개월기간) 1. 월별과 주별 코호트 분석 및 리텐션율을 모두 구하는 MySQL 쿼리를 아래에 제시합니다. 먼저, 월별 코호트 분석과 리텐션율을 구하는 쿼리입니다: SELECT DATE_FORMAT(join_date, '%Y-%m') AS Cohort, COUNT(DISTINCT user_id) AS CohortSize, COUNT(DISTINCT CASE WHEN DATE_FORMAT(activity_date, '%Y-%m') = DATE_FORMAT(join_date, '%Y-%m') THEN user_id END) AS Month1, COUNT(DISTINCT CASE WHEN PERIOD_DIFF(DATE_FORMAT(activity_date, '%Y%m'), DATE_FORMAT(join_date, '%Y%.. 2023. 7. 30.
[JOIN-LEVEL4]코딩테스트 연습JOIN그룹별 조건에 맞는 식당 목록 출력하기 https://school.programmers.co.kr/learn/courses/30/parts/17046 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3개월만에 다시 푸니 너무 어려웠다!!! join과 where 절을 같이 활용하는 문제는 항상 헷갈린다. * 이슈사항 1. where 절에 in을 쓸때는 써브쿼리문에 limit 문이 먹히지 않는다!! syntax 오류남 그리고 where 절에 특정 컬럼이 있는지 in 을 쓸때는 서브쿼리에 반드시 그 컬럼을 포함한 여러 컬럼이 있어도 된다 ㅋ 즉 where member_id in (select memb.. 2023. 7. 30.
[JOIN-LEVEL3]코딩테스트 연습JOIN있었는데요 없었습니다 https://school.programmers.co.kr/learn/courses/30/lessons/59043 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단한 JOIN 문제였음!! WHER 조건에 무엇을 넣느냐!!!!가 관건!!! select c1.animal_id,c1.name from animal_ins as c1 left join animal_outs as c2 on c1.animal_id=c2.animal_id where c1.datetime > c2.datetime order by c1.datetime /* nameanimal_id *M.. 2023. 7. 28.
[JOIN-LEVEL2]코딩테스트 연습JOIN조건에 맞는 도서와 저자 리스트 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/144854 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr lever2로 쉬워보였으나 오랜만에 join 을 하려니 헷갈렸다.. 1. left join 과 where 절이 같이 나올때는 where 절은 join 을 다 끝내고 써준다!!! 2. date_foramt 문 활용해서 형식 변경하는 문제!! select c1.book_id, c2.author_name, -- c1.published_date, date_format(c1.published_date ,.. 2023. 7. 28.
코딩테스트 연습JOIN상품을 구매한 회원 비율 구하기(level 5)- chat GPT에게 물어봣더니... 역시 문제가 좀 이상하게 헷갈리게 출제된듯하다!! CHAT GPT 는 년,월을 주문년월이 아닌 가입년월로 계산했다!!역시 불명확한 부분!!!!! 또한 정확하게 주문내역에 UESER_ID가 있는경우만 조건으로 한정해서 표현했다!! 굿잡!!!! ROUND함수는 헷갈려서 소수점 2째자리 까지 출력했으며, 비중또한 *100을 해서 백분율로 표현했다!!! SELECT EXTRACT(YEAR FROM u.JOINED) AS year, EXTRACT(MONTH FROM u.JOINED) AS month, COUNT(DISTINCT CASE WHEN s.USER_ID IS NOT NULL THEN u.USER_ID END) AS num_purchasing_users, ROUND(COUNT(DISTINCT CASE WH.. 2023. 7. 27.
코딩테스트 연습JOIN상품을 구매한 회원 비율 구하기(level 5) 가장 어려웠던 문제!!!!! 풀면 풀수록 헷갈렸던 문제!!!! 무조건 문제를 잘 읽자!!!!! 문제 USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요. 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요. 핵심 헷갈리는 사항 1. left join 을 써야하나 inner join 을 써야하나 - 정답은 inner join why : 2021년에 가입한 전체 회원들 중 .. 2023. 7. 27.
코딩테스트 연습String, Date조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 https://school.programmers.co.kr/learn/courses/30/lessons/164671#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이것이 내가 가장 어려워 하는 문제이다!!!!! where 절 안에 limit문이 in 하고 같이 쓰일때는 안먹힘!!! = 로 특정한개로 정의될때는 limit 문이 먹힘 1. 정답 select CONCAT('/home/grep/src/',BOARD_ID,'/',FILE_ID,FILE_NAME,FILE_EXT) as file_path from USED_GOODS_FILE where BOAR.. 2023. 4. 2.
코딩테스트 연습GROUP BY대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/151139#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림.. 2023. 4. 2.
코딩테스트 연습GROUP BY입양 시각 구하기(2) https://school.programmers.co.kr/questions/39492 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 해설이 좋아서 공유!!!! 나는 그냥 이렇게 했는데 select date_format(datetime, '%H') AS HOUR, HOUR(DATETIME) AS HOUR2,COUNT(*) AS CNT FROM ANIMAL_OUTS GROUP BY HOUR HAVING HOUR BETWEEN 0 AND 23 ORDER BY HOUR 아래 정답을 내신 고수는 WITH문을 써서 서브쿼리 2개를 수행!!! RECURSIVE.. 2023. 4. 2.
코딩테스트 연습GROUP BY입양 시각 구하기(1) https://school.programmers.co.kr/learn/courses/30/lessons/59412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답1 SELECT HOUR(DATETIME)AS HOUR, COUNT(*) AS COUNT FROM ANIMAL_OUTS GROUP BY 1 HAVING HOUR BETWEEN 9 AND 19 ORDER BY 1 정답2 SELECT DATE_FORMAT(DATETIME, '%H') AS HOUR, COUNT(DATE_FORMAT(DATETIME, '%H')) AS COUNT FROM ANIMAL.. 2023. 4. 2.
코딩테스트 연습GROUP BY가격대 별 상품 개수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/131530#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr round ceil floor truncate case when 까지 별여별 함수를 다 써서 테스트 해보다가 결국 floor, truncate 함수로 귀결!!!! ** 연습해본 쿼리 -- PRODUCT 테이블 1. 데이터 확인해보기 SELECT round(PRICE/10000,0)*10000 as price_group ,count(*) as cnt from PRODUCT group by .. 2023. 4. 2.
코딩테스트 연습GROUP BY년, 월, 성별 별 상품 구매 회원 수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/131532#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 주의 : count(distinct) 로 회원수를 구해야하는 문제!! -- 코드를 입력하세요 -- 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO -- 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 -- 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다. : 중복없다는 뜻 SELECT date_format(sales_date,.. 2023. 4. 2.
코딩테스트 연습GROUP BY진료과별 총 예약 횟수 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/132202 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 코드를 입력하세요 -- 진료 예약정보를 담은 APPOINTMENT 테이블 -- APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. -- 환자번호 기준으로 예약건수를 지정하는게 맞으므로 환자수(사람기준)으로 중복제거하는게 맞니 않을까 select MCDP_CD as 진료과코드, count(distinct(PT_NO)) as _.. 2023. 4. 2.
코딩테스트 연습GROUP BY카테고리 별 도서 판매량 집계하기 https://school.programmers.co.kr/learn/courses/30/lessons/144855 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 카테고리별 1월 판매량 구하기 -- 코드를 입력하세요 -- 도서 정보(BOOK) -- 판매 정보(BOOK_SALES) -- 2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요. select category,sum(SALES) as total_sales from BOOK as c1 le.. 2023. 4. 2.
[프로그래머스고득점kit]코딩테스트 연습GROUP BY즐겨찾기가 가장 많은 식당 정보 출력하기(level3) 내가 제일 헷갈리는것이 바로 group by 함수쓰기!!!! select문에 있는 컬럼수와 항상 group by 컬럼수를 같이 쓰다보니 집계할때 기준이 헷갈린다. -- 코드를 입력하세요 -- REST_INFO -- 일단 즐겨찾기수가 가장 많은 식당을 찾자 -- 그 식당의 FOOD_TYPE,REST_ID,REST_NAME, NUMBER TRUE select food_type,REST_ID,REST_NAME,max(views_sum) as views_max from (SELECT food_type,REST_ID,REST_NAME,sum(FAVORITES) as views_sum from REST_INFO group by food_type,REST_ID,REST_NAME order by food_type de.. 2023. 3. 31.
[프로그래머스고득점kit]코딩테스트 연습JOIN주문량이 많은 아이스크림들 조회하기(level 4) https://school.programmers.co.kr/learn/courses/30/lessons/133027 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ■ 1번째 방법 : union all + with문 사용하기 , but flavor 키값을 활용한 join을 사용하지 않음 -- 코드를 입력하세요 -- FIRST_HALF 테이블 : 아이스크림 가게의 상반기 주문 정보 , FLAVOR -- JULY 테이블 : 7월의 아이스크림 주문 정보, SHIPMENT_ID -- 7월 아이스크림 총 주문량과 -- 상반기의 아이스크림 총 주문량을 더한 값이 큰 .. 2023. 3. 31.
[프로그래머스고득점kit]코딩테스트 연습코딩테스트 연습JOIN보호소에서 중성화한 동물(level 4) 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr left join 과 like문을 쓰고 싶은문제였다. -- 코드를 입력하세요 -- ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. -- ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. -- 보호소에서 .. 2023. 3. 30.
[프로그래머스고득점kit]코딩테스트 연습JOIN없어진 기록 찾기(level3) left join 과 is null 을 적정하게 활용하는 문제!!! 2023. 3. 30.