[solvesql]Advent of SQL 2025 9일차
·
코딩 테스트/02. SQL
01. 작성쿼리WITH vball_kor AS (SELECT g.year AS year, re.game_id AS game_id, re.athlete_id AS athlete_id, a.name AS name FROM records AS re JOIN events AS e ON re.event_id = e.id JOIN teams AS t ON re.team_id = t.id JOIN athletes AS a ON re.athlete_id = a.id JOIN games AS g on re.game_id = g.idWHERE e.event = 'Volleyball Women''s Volleyball' AND team = 'KOR')SELECT DISTINCT past.athlete_..
(solvesql)Advent of SQL 2025 8일차
·
코딩 테스트/02. SQL
01. 작성 쿼리SELECT *FROM winesWHERE color = 'white' AND quality >= 7 AND density > (SELECT AVG(density) FROM wines) AND residual_sugar > (SELECT AVG(residual_sugar) FROM wines) AND pH (SELECT AVG(citric_acid) FROM wines WHERE color = 'white' ) 02. 쿼리 결과 03. 다른 풀이 방법지금 풀이는 같은 테이블을 여러 번 스캔해야하기 때문에 데이터가클 경우 성능이 저하될 가능성이 높고,유지보수 시 평균 조건 수정이 번거롭습니다그래서 CTE를 이용해서 조건이 잘 보이고, 수정도 쉽게 작성하면 아래와 같습니다.WI..
(solvesql)Advent of SQL 2025 7일차
·
코딩 테스트/02. SQL
01. 작성쿼리SELECT t.measured_at AS date_alertFROM measurements AS y JOIN measurements AS m ON m.measured_at = y.measured_at + INTERVAL 1 DAY JOIN measurements AS t ON t.measured_at = m.measured_at + INTERVAL 1 DAY WHERE m.pm10 > y.pm10 AND t.pm10 > m.pm10 AND t.pm10 >= 30ORDER BY t.measured_at;02. 쿼리 결과03. 풀이 포인트point 1 ) 두 번의 셀프 조인 셀프 조인을 해서 어제와 오늘을 비교하는 문제를 많이 보셨을겁니다해당 문제도 어제와 오..
(solvesql) Advent of SQL 2025 6일차
·
코딩 테스트/02. SQL
solvesql 문제는 해당 사이트에 접속하시면 확인해보실 수 있습니다.https://solvesql.com https://solvesql.com solvesql.com01. 작성 쿼리SELECT r.customer_idFROM rental AS r JOIN customer AS c ON r.customer_id= c.customer_idWHERE c.active = 1GROUP BY r.customer_idHAVING COUNT(r.rental_id) >= 3502. 쿼리 결과이런 식으로 아래 쭉 결과가 나타납니다 03. 풀이 포인트이번 문제는 5일차에 풀었던 문제와 같은 패턴을 쓰는 문제였습니다조건을 먼저 걸고 (WHERE / JOIN)특정 기준으로 묶고 (GROUP BY)그 묶음 중..
(solvesql) Advent of SQL 2025 5일차
·
코딩 테스트/02. SQL
solvesql 사이트 문제는 사이트에 들어가서 확인해보실 수 있습니다.https://solvesql.com https://solvesql.com solvesql.com 01. 작성 쿼리SELECT stamp, count(*) AS count_billFROM (SELECT CASE WHEN total_bill >= 25 THEN 2 WHEN total_bill >= 15 THEN 1 ELSE 0 END AS stamp FROM tips ) AS tGROUP BY stampORDER BY stamp;02. 쿼리 결과03. 풀이 포인트 ① FROM 절의 서브쿼리에서 CASE WHEN으로 “스탬프 개수(stamp)” 컬럼 생성영수증 한 행마다 total_bi..
[solvesql] Lv2 문제 풀이 및 함수 정리
·
코딩 테스트/02. SQL
1. 두 테이블 결합하기SELECT DISTINCT(records.athlete_id) AS athlete_id FROM records INNER JOIN events ON records.event_id = events.idWHERE events.sport = 'Golf'2. 레스토랑 웨이터의 팁 분석SELECT day, time, ROUND(AVG(tip), 2) AS avg_tip, ROUND(AVG(size), 2) AS avg_sizeFROM tipsGROUP BY day, timeORDER BY day ASC, time ASC;3. 일별 블로그 방문자 수 집계SELECT event_date_kst AS dt, COUNT(DISTINCT user_pseudo_id) A..