solvesql 7

[TIL] 윈도우 함수에서 ROWS로 특정 범위내 데이터 지정하기 #SQL #SQLite #solvesql

solvesql - 전력 소비량 이동 평균 구하기👉 문제 바로가기(solvesql)-- 2017년 1월 1일 0시부터 2017년 2월 1일 0시까지-- 10분 단위로 3개 발전소 전력 소비량의 1시간 범위 단순 이동 평균을 계산-- 이동 평균 값은 소수점 셋째 자리에서 반올림SELECT DATETIME(measured_at, '+10 minutes') AS end_at, ROUND((AVG(zone_quads) OVER(ORDER BY measured_at ROWS BETWEEN 5 PRECEDING AND CURRENT ROW)),2) AS zone_quads, ROUND((AVG(zone_smir) OVER(ORDER BY measured_at ROWS BETWEEN 5 PRECEDING A..

DA Study/TIL 2025.03.06

[TIL] 윈도우 함수를 활용한 누적합 구하기 #SQL #SQLite #solvesql

solvesql - 유량(Flow)와 저량(Stock)👉 문제 바로가기(solvesql)-- 연도별로 새롭게 소장하게 된 작품의 수-- 연도별 누적 소장 작품 수를 계산하여 조회SELECT STRFTIME('%Y', acquisition_date) as 'Acquisition year', COUNT(artwork_id) as 'New acquisitions this year (Flow)', SUM(COUNT(artwork_id)) OVER (ORDER BY STRFTIME('%Y', acquisition_date)) as 'Total collection size (Stock)'FROM artworksWHERE STRFTIME('%Y', acquisition_date) is not nullGRO..

DA Study/TIL 2025.02.24

[TIL] 날짜 구하기(datetime, date) #SQL #SQLite #solvesql

solvesql - 3년간 들어온 소장품 집계하기👉 문제 바로가기(solvesql)-- 오늘보다 내일의 미세먼지 농도가 더 심한 데이터 추출-- 오늘,내일, 오늘 미세먼지 농도, 내일 미세먼지 농도 조회SELECT t1.measured_at as today, t2.measured_at as next_day, t1.pm10, t2.pm10 as next_pm10FROM measurements t1, measurements t2 WHERE DATE(t1.measured_at, '+1 days') = t2.measured_at AND t1.pm10 [ 논리 과정 ]주어진 테이블의 measured_at에 1일을 더해 해당 테이블(measurement)의 measured_at과 Inner J..

DA Study/TIL 2025.02.12

[TIL] shrftime()으로 날짜 요일로 변환하기 #SQL #SQLite #solvesql

solvesql - 서울숲 요일별 대기오염도 계산하기👉 문제 바로가기(solvesql)SELECT CASE WHEN strftime('%u', measured_at) = '1' THEN '월요일' WHEN strftime('%u', measured_at) = '2' THEN '화요일' WHEN strftime('%u', measured_at) = '3' THEN '수요일' WHEN strftime('%u', measured_at) = '4' THEN '목요일' WHEN strftime('%u', measured_at) = '5' THEN '금요일' WHEN strftime('%u', measured_at) = '6' THEN '토요일' ..

DA Study/TIL 2024.12.24

[TIL] 다중 논리 연산자, 게임 평점 예측하기 1 #SQL #SQLite #solvesql

solvesql - 게임 평점 예측하기 1👉 문제 바로가기(solvesql)-- 2015년 이후에 발매한 게임 중 누락된 평점 정보가 있는 게임에 대해서 같은 장르를 가진 전체 게임의 평균 평점과 평균 평론가/사용자 수를 사용해 누락된 정보를 채우는 쿼리-- 쿼리 결과에는 누락된 평점 정보가 있는 게임만 포함-- 평론가와 사용자 평점 평균은 소수점 아래 넷째 자리에서 반올림 해 셋째 자리까지 출력되어야 하고, 사용자 수는 올림하여 자연수로 출력WITH average_t AS(SELECT genre_id, ROUND(AVG(critic_score),3) as avg_critic_score, CEIL(AVG(critic_count)) as avg_critic_count, ROU..

DA Study/TIL 2024.12.22

[TIL] 3개 이상의 LEFT JOIN, 날짜 형식 포맷팅 #SQL #SQLite #solvesql

solvesql - 온라인 쇼핑몰의 월 별 매출액 집계👉 문제 바로가기(solvesql)-- (SQLite) 월 별 매출 규모를 한 눈에 파악할 수 있는 데이터 만들기-- 월 별로 취소 주문을 제외한 주문 금액의 합계, 취소 주문의 금액 합계, 그리고 총 합계를 계산-- order_month 컬럼의 값으로 오름차순 정렬-- with as 절로 테이블 3개 만들어서 LEFT JOINWITH canceled_t as(SELECT strftime('%Y-%m', t1.order_date) as order_month, SUM(t2.price*t2.quantity) as canceled_amountFROM orders t1, order_items t2WHERE t1.order_id = t2.order_id ..

DA Study/TIL 2024.12.21

[TIL] 언더스코어(_)가 포함되지 않은 데이터 찾기 #SQL #ORACLE

solvesql - 언더스코어(_)가 포함되지 않은 데이터 찾기👉 문제 바로가기(solvesql)SELECT DISTINCT page_locationFROM gaWHERE page_location NOT LIKE '%#_%' ESCAPE '#'ORDER BY page_location[ 논리 과정 ]page_location을 DISTINCT로 출력 해야겠다.WHERE 절에 NOT LIKE를 사용하여 언더스코어를 제외하는 조건을 생성해야겠다.[ 문제 상황 ]'_'가 와일드카드라 NOT LIKE 절을 사용하면 모든 데이터가 출력되지 않는다.[ 해결 ]이스케이프(ESCAPE)를 활용하여 특수 문자를 조회하거나 조건을 걸 수 있다.'_' 앞에 아무 특수문자를 사용하고 ESCAPE '특수문자' 형식으로 사용 가능..

DA Study/TIL 2024.12.19