[SQL, 가설 검증] 서울숲 요일별 대기오염도 계산하기
·
데이터 공부/SQL
🔎서론SQL 문제를 풀던 중 우연히 흥미로운 데이터를 마주쳤습니다. 서울숲 대기 관측소의 오염도 데이터를 기반으로 요일별 평균 대기오염도를 구하는 문제였는데요, 단순 쿼리 해결을 넘어, 문제에 제시된 가설을 직접 검증해 보면 재밌을 것 같다는 생각이 들어 추가 분석을 진행해 보았습니다.가설“유동 인구가 많은 주말에는 대기오염도가 증가하고,유동 인구가 적은 월요일에는 대기오염도가 낮아질 것이다.”📊 본론: 데이터로 본 요일별 오염 패턴1️⃣ 데이터 소개관측 지점: 서울숲 대기 관측소측정 기간: 2022년 1년간오염 항목: NO₂, O₃, CO, SO₂, PM10, PM2.5 (총 6개)2️⃣ 요일별 평균 대기오염도 구하기SELECT CASE WHEN weeknum = 0 THEN '월요일' ..
ROUND와 CEIL의 차이점
·
데이터 공부/SQL
서론SQL에서 숫자를 반올림하거나 올림해야 할 때, 보통 ROUND와 CEIL을 사용합니다. 최근 쿼리 문제를 풀다가 ROUND(숫자, 0)과 CEIL(숫자)을 사용했을 때 결과가 다르게 나오는 것을 발견했습니다. 이에 대해 정확한 차이점을 이해하고자 이 글을 작성하게 되었습니다.본론ROUND 함수란?ROUND 함수는 숫자를 반올림하는 함수입니다. 기본적으로 다음과 같은 형식을 가집니다.ROUND(숫자, 소수 자릿수)소수 자릿수를 지정하면 해당 자릿수까지 반올림됩니다.소수 자릿수를 0으로 설정하면 정수 단위로 반올림됩니다.지정하지 않으면 기본적으로 0으로 처리됩니다.예제SELECT ROUND(4.3, 0); -- 결과: 4SELECT ROUND(4.6, 0); -- 결과: 5SELECT ROUND(4.5..
[초보자를 위한 BigQuery 입문] SQL 쿼리 잘 작성하기
·
데이터 공부/SQL
[지금 무료]초보자를 위한 BigQuery(SQL) 입문 강의 | 카일스쿨 - 인프런카일스쿨 | 초보자를 위한 BigQuery(SQL) 입문 강의입니다. 데이터를 가공하는 방법이 궁금하신 분에게 추천합니다., 요즘 필수인 데이터 분석 도구, BigQuery어떻게 시작해야 할지 고민인가요? 👀Googlwww.inflearn.com 도입몇 달간 SQL 문제 풀이 스터디를 진행하다 보니 리트코드, 해커랭크 등 여러 플랫폼을 경험하게 되었습니다.두 번 정도 SQL 코테를 풀다보니 해당 사이트들의 문제와 실제 코딩테스트, 현업의 쿼리 간에 간극이 존재한다는 것을 알게 되었어요. 실제 현업에 도움이 되는 SQL 작성법이나 노하우를 배울 수 없을까?라는 생각에 강의를 찾아보게 되었고 유튜브로 자주 보던 카일스쿨님의..
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 CONCAT_WS
·
데이터 공부/SQL
📖 문제 `USED_GOODS_BOARD`와 `USED_GOODS_USER` 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요.이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 결과는 회원 ID를 기준으로 내림차순 정렬해주세요.  🔗Link : https://school.programmers.co.kr/learn/courses/30/lessons/164670👀 What I Learned- SQL문으로 문자열 다루는 함수를 몰라서 어려웠다. 가로로 데이터를 합치는 법이라던지, 전화번호를 특정 ..
[LeetCode] 1204.Last Person to Fit in the Bus (From 절 Subquery, 누적합)
·
데이터 공부/SQL
📖 문제 조건 : 버스 최대 탑승 무게 = 1000 무게를 초과하지 않고 버스에 탈 수 있는 마지막 사람의 이름 추출 1. turn 기준으로 weight 누적 합 구하기 2. 1000을 넘지 않는 마지막 사람 추출 🔗Link : https://leetcode.com/problems/last-person-to-fit-in-the-bus/?envType=study-plan-v2&envId=top-sql-50 👀 What I Learned     SQL로 누적합을 구하는 법을 몰라 어려웠던 문제.  구글링을 통해 SUM() 함수도 LEAD,LAG 처럼 SUM(EXP) OVER (PARTITION BY __ ORDER BY __) 이런 식으로 쓸 수 있다는 걸 알게 되었다 !📖 풀이 과정 1. `SUM(..
[LeetCode] 550. Game Play Analysis IV (Where절 Subquery)
·
데이터 공부/SQL
📖 문제 첫 로그인 후, 다음 날도 로그인 한 유저 비율 구하기1. 모든 유저 수 구하기2. 첫 로그인 후 다음 날도 로그인한 유저 수 구하기🔗Link : https://leetcode.com/problems/game-play-analysis-iv/description/ 👀 What I Learned   처음에는 첫 로그인 날짜를 구한 후, 첫 로그인 기준 다음 날짜를 구하려고 했다. 초점을 '다음 날'에 맞추다보니생각한대로 구현이 잘 안됐다. 결국 솔루션을 참고해서 풀었는데 대부분의 솔루션이 `(각 event_date에서 하루를 뺀 날짜 = 첫 로그인 날짜)` 이런 로직이 많았다. 문제에서 이야기하는 그대로 코드를 짜지 말고, 다른 방식으로 바라보아야 풀리는 문제가 많은 것 같다.그런 시각을 가지..
[LeetCode] 1174. Immediate Food Delivery II (Where절 Subquery, 집계함수)
·
데이터 공부/SQL
📖 문제 각 고객들의 첫번째 주문에 대한 Immediate orders 비율 구하기- 주문 날짜 = 고객 선호 날짜이면,  Immediate- 주문 날짜 != 고객 선호 날짜이면, scheduled🔗Link : https://leetcode.com/problems/immediate-food-delivery-ii/ 👀 What I Learned 1. 제일 처음 막혔던 부분은 각 고객들의 첫번째 주문에 대해 구하는 부분이었다.    행 기준으로만 생각해서 어떻게 상위 첫번째 행만 추출할 수 있을까? 고민하다가   그렇게 하면 order_date를 또 정렬해야해서 비효율적이라고 판단했다.   WHERE 절 서브쿼리와 MIN 함수를 활용해 필요한 부분만 추출할 수 있었다 ! 2. AVG(boolean ex..
[LeetCode] 1280. Students and Examinations (CROSS JOIN, LEFT JOIN)
·
데이터 공부/SQL
📖 문제 학생들이 시험에 참여한 횟수 구하기조건 : student_id, subject_name 순으로 오름차순 정렬🔗Link : https://leetcode.com/problems/students-and-examinations/?envType=study-plan-v2&envId=top-sql-50  👀 What I Learned        먼저 기준이 되는 열을 만든 후, 계산 필드를 생성하자 !    아직 조인에 대한 이해가 부족한 것이 느껴져서 조인 결과를 확인해가며 쿼리 작성하기 !  📖 풀이 과정SELECT st.student_id, st.student_name, su.subject_name, COUNT(e.student_id) as attended_examsFROM Students ..
[MYSQL] LEAG, LAG
·
데이터 공부/SQL
안녕하세요 민몽입니다:> 최근 SQL 강의를 들으면서 이전 행, 이후 행이 계속 헷갈려 어떤 걸 써야할 지 어려움을 겪었어요. 그래서 오늘은 SQL의 LEAG, LAG 함수에 대해 정리해보려고 합니다 . LEAD Function 현재 행 기준 아래 N번째 행 값 가져오는 함수 현재 행과 후속 행과의 차이를 계산할 때 유용함 LEAD([,offset[,default_value]]) OVER ([PARTITION BY ] ORDER BY ) offset : 지정시 N번째 값 가져옴 default_value : N번째 값이 없을 경우 default_value 가져옴 PARTITION BY : 지정 시 GROUP 별 행 값 가져옴 LAG Function 현재 행 기준 위 N번째 행 값 가져오는 함수 사용법은 L..
민몽
'데이터 공부/SQL' 카테고리의 글 목록