NULL은 SQL에서 값이 없음을 나타내는 특별한 값입니다. 숫자 0이나 빈 문자열과는 다르게, "값이 존재하지 않음"을 의미합니다. 데이터베이스에서 특정 필드에 데이터가 입력되지 않았을 때 그 필드는 NULL로 저장됩니다.데이터 무결성 문제: NULL 값은 연산이나
NULL 이란 무엇인가? NULL 처리 함수 종류 1. IFNULL(expr1, expr2) (MySQL 전용) 설명: expr1이 NULL이면 expr2를 반환하고, 그렇지 않으면 expr1을 반환합니다. > 고객 이름이 NULL인 경우 'Unknown'으로
GROUP BY SQL의 GROUP BY는 데이터를 특정 컬럼을 기준으로 그룹화하고, 그 그룹에 대해 집계 함수를 사용할 수 있게 해주는 기능입니다. 이를 통해 각 그룹별로 합계, 평균, 최대값, 최소값 등을 계산할 수 있습니다. 1. 기본 사용법 GROUP BY 문
SQL UNION은 두 개 이상의 SELECT 쿼리 결과를 하나로 결합할 때 사용됩니다. 여러 SELECT 쿼리에서 반환된 결과를 하나의 집합으로 반환하며, 기본적으로 중복된 값은 제거됩니다. 중복된 값을 포함하려면 UNION ALL을 사용할 수 있습니다.UNION:
서브쿼리는 SQL 쿼리 내에 포함된 또 다른 쿼리를 의미합니다. 메인 쿼리(외부 쿼리) 내에서 데이터를 필터링하거나 계산하기 위해 사용됩니다. 서브쿼리는 SELECT, INSERT, UPDATE, DELETE 등 다양한 SQL 문 안에서 사용될 수 있습니다.
먼저, CTE(Common Table Expression)는 복잡한 쿼리를 단순화하고 가독성을 높이기 위해 일시적인 결과 집합을 정의하는 방법이다. CTE는 WITH 절을 사용하여 정의되며, 주로 재사용이 필요한 서브쿼리를 간결하게 표현할 때 유용하다.CTE 기본 구조
SUBSTRINGCONCAT, TRIM, UPPER, LOWER, REPLACE'''sqlSELECTCASE WHEN email LIKE '%@%' THEN SUBSTRING_INDEX(email,'@',-1) WHEN email LIKE '%gmail.com' THE
SELECT ANIMAL_ID,NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') '날짜'FROM ANIMAL_INSORDER BY ANIMAL_ID%y - 18%Y - 2018

https://docs.google.com/presentation/d/1GQpfPJFLtdz6ZAHICtLqbsNusAhBTRjrXnvcD3zP9ng/edit#slide=id.g2d3a63b70d30759
프로그래머스 문제를 풀다가 Regualr Expression ( 정규표현식) 함수를 알게 되었다.문제 : CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출
다음은 중고 거래 게시판 정보를 담은 USEDGOODSBOARD 테이블과 중고 거래 게시판 사용자 정보를 담은 USEDGOODSUSER 테이블입니다. USEDGOODSBOARD 테이블은 다음과 같으며 BOARDID, WRITERID, TITLE, CONTENTS, PR
문제 설명 다음은 식당의 정보를 담은 RESTINFO 테이블입니다. RESTINFO 테이블은 다음과 같으며 RESTID, RESTNAME, FOODTYPE, VIEWS, FAVORITES, PARKINGLOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다. Column na...

Mysql(localhost) 서버 내에 있는 Database 우클릭 한 뒤 Create New Database를 클릭 DB이름을 입력한 뒤 확인 생성 완료 후 데이터 가져
문제문제 설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_I

다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는
SQL 쿼리에 HAVING 절이 있는 경우 SLEECT 절에 집계 함수(Aggregated Function)가 포함되어야 합니다.참(True)일까요? 거짓(False)일까요?SQL에서 HAVING 절을 사용하는 경우 일반적으로 집계가 수행된 후에 적용되며 집계 함수(예
다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTE
주문량이 많은 아이스크림들 조회하기 문제 설명 다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRSTHALF 테이블과 7월의 아이스크림 주문 정보를 담은 JULY 테이블입니다. FIRSTHALF 테이블 구조는 다음과 같으며, SHIPMENTID, FLAVOR,
다음은 고객의 정보를 담은 MEMBER_PROFILE테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회
오프라인/온라인 판매 데이터 통합하기 문제 설명 다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINESALE 테이블과 오프라인 상품 판매 정보를 담은 OFFLINESALE 테이블 입니다. ONLINESALE 테이블은 아래와 같은 구조로 되어있으며 ONLINESALEID, USERID, PRODUCTID, SALESAMOUNT, SALES_...
특정 기간동안 대여 가능한 자동차들의 대여비용 구하기날짜가 아무리 생각해도 이해가 되지 않아서 헤맸다.자, 차근차근 생각해 봅시다.11월 1일부터 11월 30일까지 대여가 가능하려면 그 기간내에 대여 기록이 없어야겠죠.그 말은 11월 1일 이전에 END_DATE가 있으
문제 : 상품을 구매한 회원 비율 구하기문제 설명다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블과 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다. USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID,
Table: Weatherid is the column with unique values for this table.There are no different rows with the same recordDate.This table contains information
https://leetcode.com/problems/average-time-of-process-per-machine/description/Table: ActivityThe table shows the user activities for a factory we
문제 링크 https://leetcode.com/problems/students-and-examinations/description/ 나의 풀이 실행결과 | studentid | subjectname | count | | ---------- | -----------
570\. Managers with at Least 5 Direct Reports접근 1. 접근 2. GROUP BY managerId count 해서 5개 이상 iD 찾고새로 table 조회해서 해당 아이디 와 join풀이1 sub쿼리 활용처음에는 이렇게 풀었는데 R
문제링크1934\. Confirmation Rate문제 설명정답 쿼리
https://soobindeveloper8.tistory.com/456내 코드오류 이유를 구글링 해보니 띄어쓰기가 잘못된 경우였다.COUNT () 가 잘 보이지도 않아서 꽤 찾기 힘들었다.코드 짤 때 유의해서 잘 짜도록!
문제 링크 https://leetcode.com/problems/immediate-food-delivery-ii/description/접근 방법GPT :The error you're seeing occurs because aggregate functions l
https://leetcode.com/problems/game-play-analysis-iv/description/DAtE(MAX- MIN) 2일 이상 찾아보자 였는데 문제 이해를 잘못 한 것 같다. 첫번째 로그인 이후 연속해서 로그인 한 사람들의 비율을 뽑아
문제 링크https://leetcode.com/problems/user-activity-for-the-past-30-days-i/내가 쓴 쿼리WHERE DATEDIFF('2019-07-27', activity_date) <= 30문제에서 요구하는 조건Wr
GROUPING SETS, ROLLUP, CUBE는 SQL에서 집계 결과를 좀 더 유연하게 생성할 수 있도록 해주는 GROUP BY의 확장 기능입니다. 각 기능의 차이점과 사용 방법을 설명드리고, 예시 테이블과 결과도 보여드리겠습니다.예시 테이블 T1먼저, 설명에 사용
문제링크https://leetcode.com/problems/biggest-single-number/문제 내 접근input | num |\| --- \|| 8 || 8 || 7 || 7 || 3 || 3 || 3 |outputexpec
내 코드정답은 나왔지만 내가 짠 쿼리의 Runtime이하위 10%에 들어간다고 나왔다. 나도 짜면서도 더 좋은 방법이 있지 않을까 고민이 많았는데 역시 문제가 있었다.수정해본 코드e.name , e.employee 등 참조가 많아서 코드가 느려지는 것으로 예상하고메인

진행 시간 : 2024. 11. 15. (금) 11:00 ~ 12:00해설 : 2024. 11. 15. (금) 16:00 ~ 17:00국가에 대한 도시의 정보. | 이름 | 데이터 타입 | 설명 |\| --- \| --- \| --- \|| ID | int | Prim
The Number of Employees Which Report to Each Employee문제 링크https://leetcode.com/problems/the-number-of-employees-which-report-to-each-employee/des
https://leetcode.com/problems/triangle-judgement/description/삼각형의 한 변은 나머지 두 변의 길이의 합보다 작아야 하는 조건이 있다.생각해보니 CASE WHEN 으로 'No'를 미리 빼는 게 컴퓨터 부담이 덜
https://leetcode.com/problems/consecutive-numbers/description/문제 자체는 간단해 보이는데 생각보다 구현하기 어려워서 당황했다.이렇게도 가능하댄다.
https://school.programmers.co.kr/learn/courses/30/lessons/301646문제 설명대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다.다음은 실험실에서 배양
대략적인 접근 방법은 이러하다.하지만 SELECT 에서 문제가 생기는데꼭 Distinct 를 붙여줘야 한다는 점이다.그 이유는 다음과 같다.Distinct를 사용하지 않았을 때.Logs table이 다음과 같이 생겼을 경우SQL query의 결과는 다음과 같다.그 이유
https://leetcode.com/problems/product-price-at-a-given-date/description/(Editorial) - Divide cases by using UNION ALLUse the window functionCOALE
문제 링크https://leetcode.com/problems/product-price-at-a-given-date/editorial/문제 설명내 풀이Editorial solutionDivide cases by using UNION ALLDivide cases
시험 : 2024. 12. 13. (금) 11:00 ~ 12:00 (1시간)해설 : 2024. 12. 13. (금) 14:00 ~ 15:00👉 제출 안내진행 시간 : 1시간해설 : 2024. 12. 13. (금) 14:00 ~ 15:00선행 커맨드: use qcc;
https://daily-struggle.tistory.com/48
SQL 기초행 (row)테이블에서 가로 방향의 자료 집합을 의미한다. 데이터베이스에서는 이것을 레코드(record)라고도 함.열 (column)열이란, 테이블에서 세로 방향의 자료 집합을 의미하고 데이터베이스에서는 이것을 필드(field)라고도 함.테이블 (Table)
USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성하시오.2021년에 가입한 : JOINED LIKE '2021 %'나이 20대 : between 20 and 29정답FOOD_WAREHO
MySQL 접속 시 다음과 같은 오류 메시지가 출력될 수 있다:이 오류는 비밀번호를 입력하지 않아서 발생한 것으로. 아래처럼 -p 옵션을 사용해보자:이 명령어를 실행하면 다음과 같이 비밀번호 입력을 요청하는 메시지가 나온다.비밀번호를 입력하면 정상적으로 MySQL에 접
mysql> show schemas;\`\`이렇게 백틱을 쓴다mysql> create schema test_schema;mysql> use test_schema;mysql> create table table1 (id Int not null, name varchar(25

MySQL Workbench 에서 Client Connections를 확인하려는데 아무 것도 보이지 않는 상황이었다.에러 메세지는 다음과 같다.Unhandled exception: DbMySQLQuery.resultFieldStringValueByName(): MySQ
문제 링크 : https://leetcode.com/problems/sales-analysis-iii/description/문제 : Write a solution to report the products that were only sold in the firs
Reformat the table such that there is a department id column and a revenue column for each month.Return the result table in any order.The result forma
대용량 데이터를 다룰 때, 웹 애플리케이션이나 API에서 페이징(paging)은 필수적인 기능이다.MySQL에서는 대표적으로 LIMIT과 OFFSET 키워드를 이용해 쉽게 페이징을 구현할 수 있지만, 이 방식은 데이터가 많아질수록 성능 저하가 발생할 수 있다.이번 글에
SQL에서 페이징이나 N번째 데이터를 구할 때 자주 사용하는 LIMIT과 OFFSET.그러나 이 구문을 CTE(Common Table Expression) 또는 서브쿼리에서 사용할 경우, "결과가 없을 때"의 동작 방식이 서로 다르다는 사실을 알고 있는가?이번 글에서는
MySQL 실행 계획(Execution Plan)을 분석하는 것은 성능 최적화의 핵심 중 하나이다. 마치 하나의 프로젝트처럼, 문제 발견 → 실행 계획 확인 → 분석 → 개선안 도출 → 재검증의 흐름으로 진행해야 하고, 이를 통해 쿼리 성능을 체계적으로 개선할 수 있다
MySQL 슬로우 쿼리 로그(Slow Query Log)는 쿼리 성능 최적화 작업을 수행할 때 가장 중요한 출발점 중 하나이다. 이 로그는 설정된 임계 시간보다 오래 걸리는 모든 쿼리를 기록하여, 성능 병목을 유발하는 쿼리를 식별할 수 있도록 도와준다. 슬로우 쿼리 로
FUNCTION 기능을 사용해보기는 처음이라서아예 정답을 봐 버렸다.문제 자체는 어렵지 않았다.이런 구조구나~ 확인했으니 다음부터 사용하면 될 듯!
SQL의 RANK() 함수는 데이터 분석에서 순위를 매기는 데 유용한 윈도우 함수다. 특히 RANK() OVER (PARTITION BY)를 사용하면 데이터를 그룹화하고 각 그룹 내에서 순위를 매길 수 있다.RANK()는 데이터 행에 순위를 부여하는 윈도우 함수다. O
https://leetcode.com/problems/department-highest-salary/장점가독성: 부서별로 순위를 매긴 뒤 RANK = 1만 뽑는 직관적인 방식확장성: RANK()를 쓰면 동점 처리(같은 급여)도 깔끔하게 됨SQL 표준 문법: W
https://leetcode.com/problems/investments-in-2016/description/문제✅ 장점두 조건을 a, b로 각각 나눠서 관리가 명확함JOIN을 사용하여 PID 기준으로 필터링❌ 단점NOT IN (SELECT tiv_2015
https://leetcode.com/problems/friend-requests-ii-who-has-the-most-friends/문제내 풀이단점UNION은 중복 제거로 약간 느림.DISTINCT는 불필요한 연산 추가.성능UNION과 DISTINCT로 인해
https://leetcode.com/problems/exchange-seats/문제점 SELECT COUNT(ID) 서브쿼리가 전체 테이블을 스캔 (Full Table Scan)테이블이 수백만 건일 경우 성능 이슈서브쿼리가 레코드마다 반복 평가될 수 있음 (
https://leetcode.com/problems/trips-and-users/JOIN 두 번으로 인해 Users 테이블을 두 번 스캔clean_uids가 적으면 문제 없지만, 크면 메모리 사용 증가Users 테이블에 대해 한 번의 서브쿼리만 존재, 물리적

https://leetcode.com/problems/human-traffic-of-stadium/description/people 세어본다100 미만인 row들 쭉 찾아본다2번에 해당하는 아이디들 저장하고 앞 뒤에 0, (max)+1 값들 붙여준다. (계산하
대용량 데이터 환경에서 성능을 고려한 쿼리 설계나 아키텍처 구조를 이해하기 위해서는, '비용(cost)' 중심의 사고방식이 기본이 되어야 한다. 여기서 말하는 비용은 CPU, Memory, Disk I/O, Network I/O, Function Overhead, Sc
https://leetcode.com/problems/last-person-to-fit-in-the-bus/description/가독성 문제 weight라는 기존 컬럼명과 동일한 이름을 SUM(weight) 결과에도 사용했는데, 혼동을 유발할 수 있다. 누적연
윈도우 함수는 행(row) 단위의 집계, 누적, 이동 평균 등 다양한 분석을 효율적으로 수행할 수 있는 SQL 기능이다. 특히 ROWS, RANGE, PARTITION BY는 윈도우 프레임을 정의할 때 핵심적으로 사용되며, 각각의 개념과 차이를 명확히 이해하는 것이 중
https://leetcode.com/problems/restaurant-growth/description/문제내 풀이이번 쿼리는 성능이 준수하게 나와서 다른 사람들의 쿼리와 비교하는 파트는 없지만 오늘 배운 내용을 정리하는 시간을 가져보자.moving ave
https://leetcode.com/problems/movie-rating/description/UNION 에서는 LIMIT을 사용할 수 없다는 것은 알고 있었는데 ORDER BY 도 사용 못하는 건 까먹고 있었다.UNION은 두 SELECT의 결과를 합친
https://leetcode.com/problems/count-salary-categories/description/where로 잘라서 count(\*)하고 이름만 붙이면 index활용이 잘 되어 빠를 것 같다고 생각해서이렇게 적게 되었다.
데이터 분석이나 백엔드 개발을 하다 보면, 특정 그룹별로 문자열을 한 줄로 합쳐서 보고 싶을 때가 종종 있다. 예를 들어, "고객별로 구매한 상품명을 한 줄로 보고 싶다"는 요구처럼 말이다.이럴 때 유용한 함수가 바로 GROUP_CONCAT()이다. 이 글에서는 GRO
https://leetcode.com/problems/find-students-who-improved/description/어렵지 않은 문제지만두 번의 JOIN을 하지 않으면 풀기 어려운 문제.다중 JOIN을 할 때 어떻게 하면 좋을지 고민을 하다보니 시간을
SQL에서 LIKE 연산자는 문자열 패턴 매칭에 사용되는 조건 연산자이다.사용되는 패턴 문자는 DBMS마다 조금씩 차이가 있으므로, 이를 비교하여정리한다.% : 길이가 0 이상인 임의의 모든 문자\_ : 정확히 한 글자\_는 정확히 한 글자를 의미한다.매칭 예시:\`\
교차곱은 두 테이블의 모든 튜플 조합을 만들어내는 연산이다.테이블 R과 S의 튜플 수가 각각 m, n이라면 결과는 m × n개의 튜플을 가진다.속성 수(디그리)는 R과 S의 속성 수 합과 같다. 교차곱은 모든 튜플 쌍을 생성하기 때문에 대용량 데이터에서는 폭발적인 튜
관계연산자는 관계형 데이터베이스에서 관계(테이블)를 대상으로 하는 기본적인 연산을 뜻한다. 순수 관계연산자는 집합 이론과 논리 연산을 기반으로 하며, 관계형 대수(Relational Algebra)의 핵심 연산자들이다.예시σ\_{age > 30}(Employees)→
https://leetcode.com/problems/dna-pattern-recognition/description/문제 풀이에 도움을 받은 블로그 링크\[SQL] SQL에서 정규표현식 활용하기 - by 소라고동\_
https://leetcode.com/problems/analyze-organization-hierarchy/description/ 문제 내 쿼리 다른 사람 쿼리 1 다른 사람 쿼리 2 다른 사람 쿼리 3 내 쿼리 수정본
https://leetcode.com/problems/analyze-subscription-conversion/description/
https://leetcode.com/problems/find-product-recommendation-pairs/description/방식CTE 후 Join장점Product pair 집계 후 Join → Join 대상 row 줄음 단점중간 단계 결과 크면 메
pair_c 출력 결과이렇게 나왔다. 여기서는pid1 가 101 (Electronics) ,pid2 가 102 or 103 (Books) 인 부분을 봐야 하는데이 두 결과가 있다. 이 두 결과를 sum() 을 하게 된다면 4로, expected output에서 원하는
결과가 이상하게 나왔다.sido : 대구광역시 sigungu : 대구sido 상도 sigungu 동작구 address 서울특별시 동작구 상도로 123-1여기서 또 걸린다.
MEDIAN을 구하는 건 사실상 정렬 기반 연산이라서, 데이터가 커질수록 비용이 크게 올라가는 작업이다. 대규모 데이터 환경에서는 "정확한 중앙값"을 그대로 구하는 것보다 효율적인 근사치(approximation) 또는 분산 처리 전략을 많이 쓴다.ROW_NUMBER(
문제 설명:강남역 주변 일별 온도 데이터베이스에는 강남역 기상 관측소에서 2022년 1년 동안 측정한 기온 정보가 들어있습니다.이 데이터를 활용해 봄, 여름, 가을, 겨울 계절 별로 평균 기온의 차이가 있는지 알아보고 싶습니다.3월 1일부터 5월 31일까지를 ‘spri
https://school.programmers.co.kr/learn/courses/30/lessons/301651대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다.다음은 실험실에서 배양한 대장균
https://school.programmers.co.kr/learn/courses/30/lessons/276013문제 설명DEVELOPER_INFOS 테이블은 개발자들의 프로그래밍 스킬 정보를 담은 테이블입니다. DEVELOPER_INFOS 테이블 구조는 다
https://school.programmers.co.kr/learn/courses/30/lessons/276034SKILLCODES 테이블은 개발자들이 사용하는 프로그래밍 언어에 대한 정보를 담은 테이블입니다. SKILLCODES 테이블의 구조는 다음과 같으
https://school.programmers.co.kr/learn/courses/30/lessons/301649ntile 을 사용했다.문제 설명대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다
MySQL 8.0 이상에서 지원하는, 대표적인 함수들을 정리해보았다.정의: 그룹 내 데이터를 정렬 후 지정한 bucket 수로 나누고, 각 행에 bucket 번호를 부여한다.사용 예시:결과 예시1~4 숫자로 각 행이 속한 그룹을 나타낸다.주로 분위수(quartile)
https://school.programmers.co.kr/learn/courses/30/lessons/273712문제 설명어느 한 게임에서 사용되는 아이템들은 업그레이드가 가능합니다.'ITEM_A'->'ITEM_B'와 같이 업그레이드가 가능할 때'ITEM_A
1. 날짜 추출 (Extracting Date Parts) | 함수| 설명| 예시| 결과 | | ------ | ------- | -------- | ---- | | SECOND(datetime) | 초 추출| SECOND('2025-10-26 15:45:30') | 30 | | WEEK(date)| 주 번호(1~52)| WEEK('2025-1...