SQL 28

[0319 TIL] sql 심화 6회차 수업

https://medium.com/@khjin1002/sql-test-e07c2816a181 현진튜터님 블로그꼭 sql 쿼리테스트 전 가서 참고하기 여기 맨 마지막에 group by cohort_month 하면 절대 누적합 안나오므로 그룹바이하지 않기  누적합 거꾸로 구하는것: sum(cohort_size) over ( order by cohort_month desc) as acc_sum  문자열 합칠 때 Concat (‘ ‘ , ‘ ‘)A || b || c 그러나 컬럼을 이을때 사용 시, 안에 null값이 있다면concat은 null 무시하고 더해주나,더블파이브는 null이 됨.    Db 엔진에 따라 다르나, null 있어도 값으로 더해짐 그리고 2번도 더해짐 450+450 null을 0으로 대체해서..

SQL 2025.03.19

[0310 TIL] SQL 스탠다드 3회차(SQL 활용 : 고급 쿼리를 통한 퍼널, 리텐션, 코호트 분석 - 3회차)

group by 최적화카디널리티가 높은 순으로 앞에 위치할수록 좋다Cardinality = 고유값의 대부분이 균등하게 분산 [쿼리 성능 최적화][Amazon Athena] https://aws.amazon.com/ko/blogs/korea/top-10-performance-tuning-tips-for-amazon-athena/[빅쿼리] https://cloud.google.com/bigquery/docs/best-practices-performance-compute?hl=ko Amazon Athena – 10가지 성능 향상 팁 | Amazon Web ServicesAmazon Athena는 표준 SQL을 통해 Amazon S3에 저장된 데이터를 쉽게 분석 할 수 있는 대화식 쿼리 서비스입니다. Athen..

SQL 2025.03.10

[0307 TIL] (최종 프로젝트 2일차) / sql 심화 2강(any-order funnel, open funnel, closed funnel)

오늘 한 것 sql 1강 녹강으로 다시 복습,최종 프로젝트 데이터 탐색(지방vs도시 이커머스 소비패턴분석)-> 자료 없어서 패스인도 블링킷 배달회사 데이터 사용하기로 결정 후 products 파일에 집중해서 eda 진행심화 2강 라이브수강(클로즈퍼널로직 공부했는데 너무너무 재밌게 들었다..!!!) 라이브코딩 해설 https://datalemur.com/questions/rolling-average-tweets  Twitter SQL Interview Question: 3-Day Rolling TweetsTwitter SQL Interview Question: Write a query to calculate the rolling average tweet count over a 3-day period.dat..

SQL 2025.03.07

[0228 TIL] QCC 5회차 풀이 / 해설

1번 문제 : PASS2번 문제 : PASS3번 문제 : FAIL 문제 1테이블 설명 :movies 테이블은 영화에 대한 정보를 담고 있습니다. 테이블 구조는 다음과 같으며, MOVIE_ID, GENRES, TITLE, POPULARITY, RELEASE_YEAR, REVENUE, VOTE_AVERAGE, VOTE_COUNT은 각각 영화 ID, 영화 장르 리스트, 영화 제목, 인기도, 개봉 연도, 매출, 평균 평점, 평점 수을 나타냅니다.분석 내용 :2012년 이후 개봉한 영화 중, 장르가 2개 이상 포함된 영화의 연도별 매출을 구하는 SQL 문을 작성해주세요. 단, 해당 영화는 최소 100개 이상의 평점 수를 받은 경우만 결과에 포함해주세요. 결과는 개봉 연도를 기준으로 오름차 정렬해야 합니다. 출력 ..

SQL 2025.02.28

[0121 TIL] sql 코드카타 74 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(3개 Join, having min/max)

문제CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. SELECT C.CAR_ID, C.CAR..

SQL 2025.01.21

[0116 TIL] QCC 4회차 해설(max, count(distinct()), with, left join)

문제 1지역별로 매출이 가장 높은 매장의 매출을 조회하는 SQL 문을 작성해주세요. 단, 해당 지역에 매장이 두 개 이상인 경우만 결과에 포함해주세요. 결과는 지역 이름을 기준으로 오름차순으로 정렬해주세요. 내가 적은 쿼리-- 1번 문제select region_name, max(sales) as highest_salesfrom stores s group by REGION_NAMEhaving count(store_id)>=2order by REGION_NAME  정답SELECT region_name, MAX(SALES) AS highest_salesFROM storesGROUP BY REGION_NAMEHAVING COUNT(DISTINCT STORE_ID) > 1ORDER BY REGION..

SQL 2025.01.16

[0116 TIL] sql 코드카타 (CTE, with recursive CTE)

CTE( common table expression)하나의 쿼리문 범위 내에서만 존재하며 여러 번 참조될 수 있느느 이름이 지정된 일회성 테이블(결과데이터)비재귀적(Non-Recursive)CTE 와 재귀적(Recursive)CTE 로 나뉨 재귀적(Recursive) CTE-- RECURSIVE CTE WITH RECURSIVE cte (...) AS(    SELECT ... -- Non Recursive 부분    UNION ALL    SELECT ... -- Recursive 부분)SELECT * FROM cte    ; 기본적인 구조) 재귀적 CTE는 기본적으로 위와 같은 구조로 되어있으며, 계층적 또는 트리 구조의 데이터 순회에 유용하게 사용됩니다.CTE가 자신을 참조하는 재귀인 경우 위 예시..

SQL 2025.01.16

[0114 TIL] sql 코드카타 lv5 ( where 서브쿼리, date_format, union / union all, 월(숫자)구하기 month(), count())

그룹별 조건에 맞는 식당 목록 출력하기문제MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.  정답코드-- 코드를 입력하세요SELECT m.member_name, r.review_text, date_format(r.review_date,'%Y-%m-%d')as review_datefrom member_profile m join rest_review r on m.member_id = r.member_idwhere m.member_id = ( ..

SQL 2025.01.14

[0109 TIL] sql 코드카타 lv5(where b.views = (select max(views) from used_goods_board), sum 집계함수, 세 테이블 join(1 join 2 on~ join 2 on~))

문제USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존재합니다. -- 코드를 입력하세요SELECT concat("/home/grep/src/", f.board_id ,"/", f.file_id, f.file_name, f.file_ext) file_pathfrom used_goods_board b join used_go..

SQL 2025.01.09