본문 바로가기

전체 글218

[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.
[프로그래머스고득점kit] 코딩테스트 연습JOIN오랜 기간 보호한 동물(1)(level 3) 이문제는 차집합 문제이다!!! 들어온 동물중 입양나간 동물을 빼면 된다. 이것도 그냥 의식의 흐름대로 풀었다!! 아래 블로그를 참고하였으나 join으로 다시 풀어야할것 같다. https://velog.io/@nayoung5859/SQL%EA%B0%9C%EB%85%90-MINUS-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC%EB%A1%9C-JOIN-%EB%8C%80%EC%B2%B4%ED%95%98%EA%B8%B0 1. join 이용하지 않고 not in 이용하기 2. left join과 is null 이용하기 보호시작일을 년월일만 나오게 하려면 select c1.name,date_format(c1.datetime, '%Y-%m-%d') as 보호시작일 from animal_ins as.. 2023. 3. 30.
[프로그래머스sql고득점kit] 코딩테스트 연습JOIN상품 별 오프라인 매출 구하기(level 2) sql을 너무 오랜만에 풀어본다. 그냥 감을 잃지 않기위해 풀어보는것으로 생각하고 하루하루 풀어보려고 한다! 처음 이문제를 보았을때 product 테이블과 offline_sales 테이블 의 key 값이 product_id로만 조인할수 있게 되어있다. 문제 예시에는 product_code로 조인될수 있게 설명이 되어있지만..실제 풀이는 그렇지 않은것 같다. 2023. 3. 30.
헷갈리는 def, lambda 함수 알고넘어가기 import numpy as np import pandas as pd df = pd.DataFrame( [4,9],[1,4],[5,6] , columns = ['A' , 'B']) how to. 컬럼값을 일괄 정해진 규칙에 따라 변형하기 def 함수 활용 lambda 함수 활용 1. def 함수 활용하는 방법 1) 컬럼 하나에만 적용 def plus_one(x): x + = 1 return x df['A'].apply(plus_one) #결과값은 시리즈 형태로 나옴# 2). 데이터프레임의 형태에 적용하고 싶으면 해당컬럼에 할당시킴 df['A'] = df['A'].apply(plus_one) 2. apply(함수) 대신 apply(lambda) 활용하기 - 함수 정의해주는것 너무 귀찮음 간단한 함수 정의인.. 2023. 3. 22.
[DAY2_KAIST 이규민교수님 강의] pandas dataframe ① 1. 기본 datafram 구조 파악하는 방법 헷갈리지 말자!!!!! -shape, info() 차이있음 df.shape df.columns df.values df.dtypes df.info() df.describe() df.head() df.tail() 2. iloc : 순서 기반 출력, 실제 행index가 220이더라도 첫번째 순서면 0으로 봄 loc : 실제 데이터 기반 index 출력 df_covid.loc[[0, 1],['Name', 'Cases - cumulative total']] # loc는 실제 데이터의 좌표를 찍는다!!! loc[ [행] ,[열] ] 3. subset 출력하기 df[ ] df_covid['Name'] #name 컬럼만 뽑아내기, subset 여러개 컬럼을 포함한 subs.. 2023. 2. 7.