DB 4

SQL) 재귀 CTE

프로그래머스 SQL 고득점 kit를 풀던 중 재귀 CTE를 사용하는 문제가 있어 공부한 내용을 정리해보고자 한다. https://school.programmers.co.kr/learn/courses/30/lessons/301651  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr CTE란?WITH 키워드로 선언하는 나타내는 재사용 가능한 서브쿼리로 프로그래밍 언어로 따지면 일종의 메서드로 볼 수 있다.CTE는 FROM절, JOIN 절, WHERE 절 등 다양한 위치에서 쿼리의 일부처럼 사용할 수 있다.또한 쿼리 내에서 여러번 참조할 수 있어 중복을 피하는데 유용하다. CTE의 기본 구문WITH CTE_n..

DB/SQL 2025.03.05

MySQL 문법 정리

AS (별칭 정의)속성이나 테이블에 별칭을 설정하는 것SELECT 절에서의 AS:SELECT 절에서 정의된 별칭은 WHERE 절에서 사용할 수 없다.ORDER BY, GROUP BY, HAVING 절에서 사용할 수 있다.FROM 절에서의 AS (테이블 별칭):FROM 절에서 정의된 테이블 별칭은 쿼리의 모든 부분에서 사용할 수 있다.서브쿼리에서의 AS:외부 쿼리에서는 사용할 수 없다. 단, 해당 서브쿼리를 직접 포함하는 상위 쿼리에서는 사용할 수 있다. WITH (반복 함수)복잡한 쿼리를 쉽게 풀어쓸 수 있다.임시 테이블 생성WITH절은 쿼리 내에서 임시로 사용할 수 있는 이름을 붙인 서브쿼리를 생성한다.재사용성동일한 서브쿼리를 여러번 써야할 때 WITH절을 통해 한번만 정의하고 여러번 참조할 수 있다...

DB/SQL 2024.08.30

그거 아셨나요? - WHERE와 HAVING의 차이

WHERE와 HAVING은 둘다 조건을 달 수 있는 조건절입니다.그렇다면 WHERE와 HAVING 둘다 아무 조건을 달 수 있는 것 아닌가 하실 수 있는데 차이가 있습니다. WHERE1. 개별 행에 대해 필터링합니다.2. 그룹화(GROUP BY) 이전에 적용됩니다.3. 집계 함수(SUM, MAX, COUNT 등)을 사용할 수 없습니다. HAVING1. 그룹화 이후에 적용됩니다.2. 그룹화한 결과에 대해 필터링합니다.3. 집계 함수를 사용할 수 있습니다. HAVING절이 그룹화 이후에 필터링을 하기 때문에 그룹화 이전에 필터링되어 그룹화를 진행하는 WHERE절에 비해 덜 효율적일 수 있습니다. 그리고 HAVING절은 그룹화를 한 뒤 필터링이 되기 때문에 그룹화 이후 필터링할 수 있는 조건만 다는 것이 좋습..

DB/SQL 2024.08.26

프로그래머스 SQL (SELECT 문제) 서울에 위치한 식당 목록 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 식당의 정보를 담은 REST_INFO 테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블이 주어진다. 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 문제이다. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해야하고, 결과는 평균점수를 기준으로 내림차순 정렬해야하고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차..

DB/SQL 2024.08.13