SQL | Brazillian 데이터를 활용한 쿼리 연습 1)
·
SQL/SQL | 쿼리 연습
데이터 불러오기https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce데이터가 너무 커서 mysql 환경에서 잘 안돌아간다... 문제 1 : 평균 배송 거리가 가장 긴 카테고리와 그 평균 거리를 구하시오.각 주문의 배송 거리 = 고객 위치와 판매자 위치 간의 직선 거리로 계산힌트: 위도와 경도 데이터를 활용하여 거리 계산 (Haversine Formula)조건: 결과는 가장 배송 거리가 긴 제품 카테고리 1개를 반환.with customer as ( select ocd.customer_id , ocd.customer_zip_code_prefix , ogd.geolocation_lat as customer_lat , ogd.geolocat..
SQL | Classicmodels 데이터를 활용한 쿼리 연습 3)
·
SQL/SQL | 쿼리 연습
문제 7 : 고객 이탈 예측 지표 분석주문을 한 지 1년 이상 지난 고객을 이탈 고객으로 가정합니다. 모든 고객에 대해 이탈 고객 여부를 판단하고, 이탈 고객 비율을 계산하는 쿼리를 작성하세요.customers, orders 테이블을 사용하세요.가장 최근 주문일을 기준으로 1년 이상 주문하지 않은 고객을 "이탈"로 표시하고, 전체 고객 대비 이탈 고객의 비율을 출력하세요.출력: 총 고객 수, 이탈 고객 수, 이탈 고객 비율 (%)가장 최댓값이 2005-05-31 이므로 이 날을 기준으로 1년 이상 주문하지 않은 고객으로 가정with t1 as ( select c.customerNumber , max(orderDate) as last_order from orders as o ..
SQL | Classicmodels 데이터를 활용한 쿼리 연습 2)
·
SQL/SQL | 쿼리 연습
문제 1 : 사무실별 최고 매출 직원 조회설명: 각 사무실(offices)에서 가장 많은 매출을 기록한 직원(employeeNumber, firstName, lastName, totalSales)을 조회하세요.난이도: 매우 어려움with t1 as ( select od.*, c.customerNumber, c.salesRepEmployeeNumber, quantityOrdered*priceEach as sales from orderdetails as od inner join orders as o on od.orderNumber = o.orderNumber inner join customers as c on c.customerNumber = o.customerNumber..
SQL | Classicmodels 데이터를 활용한 쿼리 연습 1)
·
SQL/SQL | 쿼리 연습
1. 월별 H, M,L 의 주문 카운팅 수는 어떻게 되는지?월별의 기준은 orderDate 기준으로원하는 쿼리 결과물은2003-01 H 00, M 00, L 00 ~ 2004-04 H 00, M 00, L 00WITH T1 AS ( select orderNumber, productCode, case when priceEach >= 100 then 'High Price' when priceEach between 50 and 99 then 'Medium Price' else 'Low Price' end as price_category from orderdetails)select date_format(orderDate, '%Y-%m') a..
SQL | SOLVESQL 코딩테스트 : Lv5. (ANALYTICS)
·
SQL/SQL | SOLVESQL 코딩테스트
Lv5. 폐쇄할 따릉이 정류소 찾기 1https://solvesql.com/problems/find-unnecessary-station-1/WITH T1 AS ( -- 정류장 id가 같지 않은 것 중에 0.3KM 안에 있는 것들 SELECT s1.station_id, s1.name, s2.station_id AS next_s_id, s2.name AS next_s_name FROM station AS s1 LEFT JOIN station AS s2 ON s1.station_id != s2.station_id AND s1.updated_at = 5❗GROUP BY절에 기준이 될 station_id 넣기❗HAVING 절에 개수가 5개 이상이라는 조건 넣기❗참고 : https://nowolv..
SQL | SOLVESQL 코딩테스트 : Lv5. (WINDOWFUNCTION)
·
SQL/SQL | SOLVESQL 코딩테스트
Lv5. 카테고리 별 매출 비율SELECT DISTINCT category , sub_category , ROUND(SUM(sales) OVER(PARTITION BY sub_category),2) AS sales_sub_category , ROUND(SUM(sales) OVER(PARTITION BY category),2) AS sales_category , ROUND(SUM(sales) OVER() ,2) AS sales_total , ROUND(ROUND(SUM(sales) OVER(PARTITION BY sub_category),2) / ROUND(SUM(sales) OVER(PARTITION BY category),2)*100,2) AS pct_in_category , ROUND(RO..
SQL | SOLVESQL 코딩테스트 : Lv5. (STRING/DATE)
·
SQL/SQL | SOLVESQL 코딩테스트
Lv5. 어떤 컨텐츠를 보고 유입되었을까?https://solvesql.com/problems/referrer-contents/WITH T1 AS ( SELECT SUBSTR(page_location, LOCATE('content',page_location)) AS 'content' , page_location , source , event_name FROM ga WHERE source = 'brunch' AND event_name = 'page_view' AND (page_title = '백문이불여일타 SQL 캠프 실전반' OR page_title = '백문이불여일타 SQL 캠프 심화반'))SELECT DISTINCT SUBSTR(content, LOC..
SQL | SOLVESQL 코딩테스트 : Lv5. (JOIN/UNION)
·
SQL/SQL | SOLVESQL 코딩테스트
Lv5. SQL 데이터 분석 캠프 실전반 전환율https://solvesql.com/problems/funnel-datarian-adv/WITH VIEW AS ( SELECT event_timestamp_kst , user_pseudo_id , ga_session_id FROM ga WHERE page_title = '백문이불여일타 SQL 캠프 실전반' AND event_name = 'page_view'), SCROLL AS ( SELECT event_timestamp_kst , user_pseudo_id , ga_session_id FROM ga WHERE page_title = '백문이불여일타 SQL 캠프 실전반' AND event_name = 'scroll..
tlswnrhd
주공