Data Science/SQL86 [SQL/오답] Recursive CTE와 정규표현식을 활용한 커스텀 텍스트 포맷팅 (LeetCode3374 Hard) 1. Problemuser_content 테이블의 텍스트 데이터를 특정 규칙에 맞춰 변환해야 한다. 각 단어의 첫 글자는 대문자로, 나머지는 소문자로 변환하되, 특히 하이픈(-)으로 연결된 단어(예: top-rated)는 양쪽 모두 첫 글자를 대문자로 처리(Top-Rated)해야 한다. 공백과 특수문자 등 기존 포맷을 유지하면서 비정형 텍스트를 정밀하게 가공하는 것이 핵심 과제이다.2. SolutionMySQL의 제약을 극복하기 위해 **재귀적 CTE(Recursive CTE)**를 사용하여 문장을 단어 단위로 분해하고 가공한 뒤 재조합하는 전략을 취한다.파괴적 추출(Destructive Extraction): REGEXP_REPLACE의 5번째 인자(occurrence)를 1로 설정하여, 문장 앞부분부.. 2026. 2. 16. [SQL/오답] 조건부 집계(CASE WHEN)와 집합 결합을 활용한 홀짝 거래액 산출 (LeetCode3220 Medium) 1. Problem날짜별로 거래 금액(amount)의 홀수 합계와 짝수 합계를 각각 구해야 한다. 특정 날짜에 홀수 또는 짝수 거래가 없는 경우 0으로 표시해야 하며, 결과는 날짜 순으로 정렬한다. 단순히 그룹화하는 것을 넘어, 특정 조건에 부합하는 행들만 선택적으로 합산하는 로직이 핵심이다.2. Solution테이블 스캔 효율을 극대화한 CASE WHEN 방식과 구조적 명확성을 강조한 CTE 기반 JOIN 방식 두 가지로 접근 가능하다.[방법 A] 최적화된 CASE WHEN 방식 (권장) 테이블을 단 한 번만 읽어 성능이 가장 뛰어나며 가독성도 좋다.[방법 B] CTE와 JOIN을 활용한 구조적 방식 홀수와 짝수 집합을 분리하여 계산한 뒤, 전체 날짜 기준(all_dates)으로 결합하여 데이터 유실을.. 2026. 2. 16. [SQL/오답] 대칭차집합의 데이터 정합성 검수 (LeetCode1965 Medium) 1. Problem사원 정보가 담긴 Employees 테이블과 급여 정보가 담긴 Salaries 테이블을 비교하여, 정보가 누락된 사원의 ID를 찾아야 한다. 누락의 기준은 '이름이 없거나' 혹은 '급여 정보가 없는' 경우이며, 이는 집합론적으로 두 집합의 합집합에서 교집합을 뺀 대칭차집합을 구하는 문제와 같다.2. Solution가장 직관적인 집계 방식부터 성능 최적화를 고려한 방식까지 총 세 가지 전략으로 접근할 수 있다.[전략 A] 집계 중심: UNION ALL + HAVING (기발한 접근) 두 테이블의 ID를 수직으로 쌓은 뒤, 딱 한 번만 등장한 ID를 필터링한다. 조인 문법 없이도 명확하게 '혼자 있는 데이터'를 찾아낼 수 있다.[전략 B] 논리 중심: NOT IN + UNION (표준적 접.. 2026. 2. 16. [SQL/오답] AVG(조건식) 승인율 계산과 NULL 처리 (LeetCode1934 Medium) 1. Problem각 유저별로 전체 확인 요청 대비 '확인됨(confirmed)' 상태의 비율을 계산해야 한다. 요청 기록이 전혀 없는 유저의 승인율은 0으로 처리해야 하며, 소수점 둘째 자리까지 반올림하는 정밀도가 요구된다. 가입만 하고 요청은 하지 않은 유저를 결과에서 누락시키지 않는 것이 기술적 관건이다.2. SolutionLEFT JOIN을 통해 모든 유저를 확보한 후, AVG 함수 내부에 직접 조건을 삽입하여 연산 효율을 극대화한다.AVG(c.action = 'confirmed'): MySQL에서 조건식은 참일 때 1, 거짓일 때 0을 반환한다. 이를 평균내면 별도의 분모 설정 없이도 바로 비율(Rate)이 계산된다.IFNULL(..., 0): LEFT JOIN으로 인해 요청 기록이 없는 유저(.. 2026. 2. 16. [뉴스] DB까지 자연어로 가능한 시대 <다큐브, 예일대 'AI모델 검증' 벤치마크 1위 달성…中 텐센트 제쳤다> 김진현 기자2026. 2. 11. 17:01 [이 기사에 나온 스타트업에 대한 보다 다양한 기업정보는 유니콘팩토리 빅데이터 플랫폼 '데이터랩'에서 볼 수 있습니다.]다큐브의 'Spider 2.0' Snow 트랙 1위 달성 /사진제공=다큐브AI(인공지능) 스타트업 다큐브가 전 세계 AI 모델의 데이터 처리 능력을 평가하는 최고 권위의 무대에서 '그랜드슬램'을 달성했다. 자연어를 컴퓨터 언어(SQL)로 변환하는 기술력을 겨루는 평가에서 중국의 텐센트를 제치고 전 부문 1위를 휩쓸었다.다큐브는 11일 미국 예일대 연구진이 주관하는 '스파이더 2.0(Spider 2.0)' 벤치마크의 3개 평가 트랙(DBT·Lite·Snow)에서 모두 세계 1위를 기록했다고 밝혔다. 국내 기업이 이 평가의 모든 트랙을 석권한 것.. 2026. 2. 16. [SQL/오답] 데이터가 없어도 항목 유지: UNION ALL (LeetCode1907 Medium) 1. Problem은행 계좌의 월 소득(income)을 기준으로 세 가지 카테고리('Low', 'Average', 'High')의 계좌 수를 집계해야 한다. 이 문제의 핵심 제약 사항은 특정 카테고리에 속한 계좌가 0개이더라도 결과 테이블에 반드시 해당 카테고리 이름과 '0'이 표시되어야 한다는 점이다.2. Solution일반적인 GROUP BY 방식의 한계를 극복하기 위해, 각 카테고리를 독립적인 쿼리로 생성한 후 UNION ALL로 결합하는 방식을 사용한다.고정 행 생성: SELECT 'Category Name'을 통해 실제 데이터 존재 여부와 상관없이 결과창에 노출될 항목(Skeleton)을 먼저 정의한다.독립적 필터링: 각 쿼리가 특정 범위만 담당하므로 데이터가 없는 구간은 COUNT(*)가 자연.. 2026. 2. 16. 이전 1 2 3 4 5 6 7 ··· 15 다음