본문 바로가기

SQL124

[LeetCode / SQL] Customers Who Never Order -CodeSELECT C.name AS CustomersFROM Customers AS C LEFT JOIN Orders AS O ON C.id = O.customerId WHERE O.customerId IS NULL; 2025. 8. 14.
[LeetCode / SQL] Duplicate Emails -CodeSELECT EmailFROM PersonGROUP BY EmailHAVING COUNT(Email) > 1; 2025. 8. 14.
[LeetCode / SQL] Employees Earning More Than Their Managers -CodeSELECT E2.NAME AS EMPLOYEEFROM EMPLOYEE AS E1 JOIN EMPLOYEE AS E2 ON E1.ID = E2.MANAGERIDWHERE E1.SALARY 2025. 8. 13.
[프로그래머스 / SQL] 멸종위기의 대장균 찾기 -Code-- 재귀 함수WITH RECURSIVE GEN_CTE AS ( -- 첫 실행 SELECT ID, PARENT_ID, 1 AS GENERATION FROM ECOLI_DATA WHERE PARENT_ID IS NULL UNION ALL -- 이전 값에서 부모 ID와 자식 ID가 같은 경우 GENERATION 값을 1더한 것 합침 SELECT ED.ID, ED.PARENT_ID, CTE.GENERATION + 1 AS GENERATION FROM ECOLI_DATA AS ED JOIN GEN_CTE AS C.. 2025. 8. 12.
[SQL] 재귀 쿼리 WITH RECURSIVE 문 WITH RECURSIVE프로그래밍에서 재귀 함수를 들어봤듯이, SQL에서도 재귀 쿼리 기법이 존재합니다. 다만 문법이 이상한데 우선 WITH RECURSIVE 쿼리문을 작성하고 내부에 UNION을 통해 재귀를 구성하는 것이 포인트입니다.WITH RECURSIVE CTE_COUNT AS ( -- Non-Recursive 문장( 첫번째 루프에서만 실행됨 ) SELECT 1 AS N UNION ALL -- Recursive 문장(읽어 올 때마다 행의 위치가 기억되어 다음번 읽어 올 때 다음 행으로 이동함) SELECT N + 1 AS NUM FROM CTE_COUNT WHERE N 메모리 상에 가상의 테이블을 저장합니다.반드시 UNION 사용해야합니다.반드시 처음 한.. 2025. 8. 12.
[LeetCode / SQL] Combine Two Tables -CodeSELECT P.FIRSTNAME, P.LASTNAME, A.CITY, A.STATEFROM PERSON AS P LEFT JOIN ADDRESS AS A ON P.PERSONID = A.PERSONID; 2025. 8. 11.