MySQL 20

[TIL] SQL Project Planning 간단 풀이 # MySQL # SQL

HackerRank Intermediate - SQL Project Planning이전 포스팅에서 다뤘던 해커랭크 SQL Project Planning 문제 풀이가 너무 복잡해서 간단한 버전의 풀이 방법을 고민하다가 답을 찾아서 다시 포스팅 해본다..ㅋㅋ 👉[TIL] 다중 CTE 활용한 복잡한 문제 해결 # MySQL # SQL👉 문제 바로가기(HackerRank) [간단 버전 풀이]SELECT t1.Start_Date, MIN(t2.End_Date)FROM (SELECT Start_Date FROM Projects WHERE Start_Date NOT IN (SELECT End_Date FROM Projects)) t1, (SELECT End_Date ..

DA Study/TIL 2025.04.09

[TIL] 재귀 쿼리 (Recursive CTE) # MySQL # SQL

HackerRank Intermediate - Draw The Triangle 2👉 문제 바로가기(HackerRank)WITH RECURSIVE cte AS( SELECT 1 AS N UNION ALL SELECT (N + 1) AS N FROM cte WHERE N [문제 상황]'*'을 다음줄로 넘어갈 때 하나씩 늘려 삼각형 모양으로 출력해야 한다.이를 위해 매 줄 SELECT REPEAT('*', n); 을 사용해서 출력해야 한다.[해결] 파이썬의 반복문처럼 매 줄 하나씩 개수를 하나씩 더해서 늘려주는 구문을 작성한다.재귀 쿼리(Recursive CTE)을 사용한다.Anchor - SELECT 1 AS N반복 조건문 - SELECT (N + 1) AS N FROM cte WHERE N [회고..

DA Study/TIL 2025.04.06

[TIL] 리스트에서 요소 개수 카운트하기, 문자열 길이 반환 함수(CHAR_LENGTH) 활용 #SQL #MySQL

단어 리스트에서 단어 개수 카운트데이터 출처: Kaggle(링크)SELECT pizza_type_id, (CHAR_LENGTH(ingredients) - CHAR_LENGTH(REPLACE(ingredients,",","")) +1) AS type_ingredients_cntFROM pizza_typesORDER BY pizza_type_id[ 문제 상황 ]피자 재료가 콤마(,)를 통해 나열되어 있다.피자별로 피자 재료의 개수를 세어 조회해야 한다.MySQL에는 직접적으로 단어를 세는 함수가 없다.[ 해결 ]먼저 컬럼값의 전체 문자열 수를 카운트 한다.콤마(,)를 없앤 컬럼값의 전체 문자열 수를 카운트 한다.두 값의 차이가 곧 콤마(,)의 개수이다.콤마의 개수에 1을 더하면 요소의..

DA Study/TIL 2025.03.18

[TIL] 집계 함수와 연산 함수를 활용한 피어슨 상관계수 구하기 #SQL #SQLite #solvesql

solvesql - 펭귄 날개와 몸무게의 상관 계수👉 문제 바로가기(solvesql)-- 날개 길이와 몸무게의 피어슨 상관 계수(Pearson Correlation Coefficient)를 구하는 쿼리WITH avg_t AS( SELECT species, AVG(flipper_length_mm) as avg_length, AVG(body_mass_g) as avg_mass FROM penguins GROUP BY species)SELECT t1.species, ROUND((SUM((t1.flipper_length_mm - t2.avg_length)*(t1.body_mass_g-t2.avg_mass)))/ (SQRT(SUM(POWER((t1.flipper_le..

DA Study/TIL 2025.02.25

[TIL] SELECT절에서 서브쿼리 활용하여 비율 구하기 # MySQL # SQL

Programmers Lv5 - 상품을 구매한 회원 비율 구하기👉 문제 바로가기(Programmers)-- 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력SELECT YEAR(t2.SALES_DATE) as YEAR, MONTH(t2.SALES_DATE) as MONTH, COUNT(DISTINCT t2.USER_ID) as PURCHASED_USERS, ROUND(COUNT(DISTINCT t2.USER_ID) / (SELECT COUNT(DISTINCT USER_ID) FROM USER_INFO WHERE JO..

DA Study/TIL 2025.02.04

[TIL] MySQL 정규식 REGEXP AND, OR 조건 # MySQL # SQL

HackerRank Intermediate - Weather Observation Station 8👉 문제 바로가기(HackerRank)-- 문제 : CITY컬럼값 중 aeiou로 시작하고 끝나는 컬럼값만 출력(중복 허용X)-- WHERE절에 AND 사용SELECT DISTINCT CITYFROM STATIONWHERE CITY REGEXP '^[aeiou]' AND CITY REGEXP '[aeiou]$' -- 정규식으로만SELECT DISTINCT CITYFROM STATIONWHERE CITY REGEXP '^[aeiou].*[aeiou]$' [ 문제 상황 ]각 모음으로 시작되고 끝나는 CITY값을 찾기위해 WHERE절에 AND조건을 통해 REGEXP문 코드를 반복해서 작성해야한다.[ 해결 ..

DA Study/TIL 2025.01.22

[TIL] MySQL 정규식 REGEXP (Regular Expression) # MySQL # SQL

HackerRank Intermediate - Weather Observation Station 7👉 문제 바로가기(HackerRank)-- 문제 : CITY컬럼값 중 aeiou로 끝나는 컬럼값만 출력(중복 허용X)-- 비효율 코드SELECT DISTINCT CITYFROM STATIONWHERE CITY LIKE '%a' OR CITY LIKE '%e' OR CITY LIKE '%i' OR CITY LIKE '%o' OR CITY LIKE '%u'-- 효율 코드SELECT DISTINCT CITYFROM STATIONWHERE CITY REGEXP '[aeiou]$' [ 문제 상황 ]각 모음으로 끝나는 CITY값을 찾기위해 LIKE문 코드를 반복해서 작성해야한다.[ 해결 ..

DA Study/TIL 2025.01.19