전체 글 100

[프로그래머스] [SQL] 5월 식품들의 총매출 조회하기

오늘도 평화로운 주인장의 SQL 풀기 나머지는 있는대로 넣으면 돼서 안힘들었는데 총합에서 조금 애먹었다 우선 PRODUCT_ID별로 안나누면 같은 PRODUCT_ID 라도 따로 집계돼서 GROUP BY 사용 SELECT절에서 가격이랑 양 곱한거 합했다 이러면 총합은 완료 하지만 여전히 오답이었다 예시를 잘 보니 만들어진게 안나가는 경우도 있어서 FOOD_PRODUCT에 left join하게 만들었다 그랬더니 통과됨! SELECT FOOD_PRODUCT.PRODUCT_ID, FOOD_PRODUCT.PRODUCT_NAME, sum(FOOD_PRODUCT.PRICE*FOOD_ORDER.AMOUNT) as "TOTAL_SALES" FROM FOOD_PRODUCT LEFT JOIN FOOD_ORDER ON FOO..

코딩테스트 2023.12.06

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

JOIN이 어색했을 시절 풀다가 포기한 문제 우선 이렇게 풀었다 WHERE절에서 오류가 나서 서브쿼리로 처리함 근데 너무 비효율적인거 같아서 뤼튼에게 물어보고 다른 방법을 찾았다 SELECT WRITER_ID, NICKNAME, TOTAL_SALES FROM (SELECT USED_GOODS_BOARD.WRITER_ID, USED_GOODS_USER.NICKNAME, sum(USED_GOODS_BOARD.PRICE) as "TOTAL_SALES" FROM USED_GOODS_BOARD JOIN USED_GOODS_USER ON USED_GOODS_BOARD.WRITER_ID = USED_GOODS_USER.USER_ID WHERE USED_GOODS_BOARD.STATUS = "DONE" GROUP BY..

코딩테스트 2023.12.04

[프로그래머스] [SQL] 카테고리 별 도서 판매량 집계하기

오랜만에 컴백 테이블 2개 조인하고~ 2022-01 들어가는거 조건으로 걸고 카테고리로 그룹 묶고 카테고리 오름차순 으로 ORDER BY 해주고(굳이 ASC 안적었음) SELECT 에 카테고리랑 SALES 합계 넣어주면 짠 완성~! 참 쉽죠? SELECT CATEGORY, sum(SALES) as 'TOTAL SALES' FROM BOOK JOIN BOOK_SALES ON BOOK.BOOK_ID = BOOK_SALES.BOOK_ID WHERE SALES_DATE LIKE '2022-01%' GROUP BY CATEGORY ORDER BY CATEGORY; 출처 : 프로그래머스

코딩테스트 2023.12.02

[프로그래머스] [SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

다 풀어놓고 WHERE 절에서 "%시트" ← 이렇게 작성하고 오답이라고 해서 괴로워하고 있었다 앞에만 % 이거 넣으면 뒤로는 아무것도 안들어가야해서 겉으로 보면 잘 나온거 같아 보이지만 제대로 안나온 것 앞뒤로 넣어야지 중간에 있어도 잘 뽑아내준다 SELECT CAR_TYPE, count(CAR_TYPE) "CARS" FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE "%시트%" GROUP BY CAR_TYPE ORDER BY CAR_TYPE ASC; 출처 : 프로그래머스

코딩테스트 2023.11.27

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

이젠 테이블 하나있는건 너무 고맙다 보자마자 case when 이 떠올랐다 근데 다른글자 라도 의미만 같으면 똑같이 O를 표시하는데 or로 될까 싶어서 넣어봤더니 안되네 따로 해야하는건가 찾아봐도 모르겠다 알게되면 추가해야지 SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN 'O' WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O' ELSE 'X' END AS '중성화' FROM ANIMAL_INS +) 된다 컬럼을 두번 적으면 되는데 난 또 한번만 적어가지고 안되는 거였음! 어떤거는 컬럼명을 한번만 적어도 되고 어떤거는 따로 적어야하는게 헷갈린다 CASE WHEN에서는 두 번 ! SELECT AN..

코딩테스트 2023.11.24

[프로그래머스] [SQL] 서울에 위치한 식당 목록 출력하기

으어어 간만에 돌아왔다 SQL만 파기로 했기 때문에 SQL SELECT 4단계다 몇번의 코테를 거치면서 ROUND는 기본 탑재됐다 SELET 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수(리뷰 평균점수는 소수점 세 번째 자리에서 반올림) FROM REST_INFO와 REST_REVIEW 테이블 WHERE 서울에 위치한 식당들 GROUP BY 식당 별 평균 점수 ORDER BY 평균점수를 기준으로 내림차순 정렬, 즐겨찾기수를 기준으로 내림차순 정렬 SELECT REST_INFO.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, ROUND(avg(REVIEW_SCORE), 2) as SCORE FROM REST_INFO JOIN REST_R..

코딩테스트 2023.11.22

[코테후기] 펄어비스 DBA

게임회사다 내가 넣은 두번째 DBA 직무 지금은 공고가 내려가서 못보는데 초급 수준의 t-sql을 할 수 있어야 한대서 t-sql 찾느라 고생함 전공자들도 잘 모르던데... 공부하려고 임시저장도 해놨는데 결국 못보고 안녕... 여튼 서류 통과하고 인적성보고 코테봤다 거의 하루만에 봤다해도 무방하다 대면일때는 가서 하루종일 본거 같던데 난 비대면이라 이틀에 나눠서 봤다 코테는 기본 베이스가 MS-SQL 아마 t-sql이 MS에서 만들어져서 그런거 같다 문제는 MySQL로 풀 수 있음 문제는 많고 시간은 적다 난 거의 다 풀었는데 마무리를 제대로 못한게 2문제 있어서 넘 슬펐다... 게임회사라 그런가 게임을 단순히 좋아하는게 아니고 어떻게 굴러가는지 관심이 있고 잘 알아야하는 거 같다 게임관련해서는 답을 못..

취준 2023.11.20

[프로그래머스] [SQL] 오랜 기간 보호한 동물(1)

일주일만에 하는거 같은데... SQL로 돌아옴! 전에 조금 풀어놨었는데 뭐가 안되는지 안풀려서 방치해놨던거 다시 풀었다 최근에 코테를 쳤는데 거기선 서브쿼리보다 조인에 더 많은 점수를 준대서 서브쿼리를 안쓰고 풀었는데(다풀진 못했지만) 그래서 이 문제에서도 서브쿼리 욕심 버리고 풀어봄 LEFT OUTER JOIN 쓴 이유는 입양을 가지 못한 애들을 NULL로 받을려고 SELECT ANIMAL_INS.NAME, ANIMAL_INS.DATETIME FROM ANIMAL_INS LEFT OUTER JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID WHERE ANIMAL_OUTS.DATETIME is null ORDER BY ANIMAL_INS...

코딩테스트 2023.11.17

[프로그래머스] [SQL] 대여 기록이 존재하는 자동차 리스트 구하기

머리가 안돌아간다 SQL 풀기 SELECT 절에서 서브쿼리써서 풀고 싶었는데 생각보다 잘 안풀려서 이럴거면 그냥 안쓰는게 낫겠다 싶어서 서브쿼리 안쓰고 풀었다 ... 이제 설명할 것도 없는 거 같은데 SELECT CAR_ID인데 겹치지 않게(DISTINCT) FROM 테이블 두개 CAR_ID로 조인 WHERE CAR_TYPE = '세단' and 대여시작이 10월인 거 (LIKE '2022-10%') → 이미 DATE라서 형변환은 안함 ORDER BY CAR_ID대로 내림차순 SELECT DISTINCT CAR_RENTAL_COMPANY_CAR.CAR_ID FROM CAR_RENTAL_COMPANY_CAR JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY ON CAR_RENTAL_COM..

코딩테스트 2023.11.09

[프로그래머스] [Python] 머쓱이보다 키 큰 사람

오늘도 파이썬 조금씩 발전 중이다 내가 경험한 바 매일 조금씩 하는거보다 무서운 게 없다 오늘도 파이팅! 흐흐... 조금 복잡하게 풀긴 했지만 보고 바로 넘어갔을 때에 비하면 장족의 발전 ! 이건 좀 부끄러운데 return 자리를 제대로 못잡아서 조금 헤맸다 그래도 해결했다!! def solution(array, height): up = [] for i in array: if height < i: up.append(i) return len(up) 다른 사람의 풀이 신기한데 댓글에 시간 복잡도가 안좋다고 for 문: O(n), sort: O(nlogn) 시간복잡도는 더 안좋음 def solution(array, height): array.append(height) array.sort(reverse=True..

코딩테스트 2023.11.07