728x90 SQL5 [SQL] CROSS JOIN과 LEFT JOIN으로 “모든 학생 × 모든 과목” 응시 횟수 구하기 SQL 문제 중 아주 자주 등장하는 패턴이 있다.“모든 학생과 모든 과목을 기준으로, 각 학생이 과목별 시험을 몇 번 봤는가?”이 문제를 풀기 위해서는 CROSS JOIN과 LEFT JOIN, 그리고 COUNT() 함수의 동작 원리를 정확히 이해해야 한다.아래는 단계별로 쿼리 실행 흐름과 실제 예시 결과를 보여준다.🧩 0. 문제 데이터Studentsstudent_idstudent_name1Alice2Bob13John6AlexSubjectssubject_nameMathPhysicsProgrammingExaminationsstudent_idsubject_name1Math1Physics1Programming2Programming1Physics1Math13Math13Programming13Physics2Mat.. 2025. 10. 21. [SQL]전날보다 더 더웠던 날 찾기: Self Join vs WITH(CTE)로 깔끔 정복 오늘 문제 풀다가 두 가지를 새로 알았다.테이블을 자기 자신과 조인(Self Join)할 수 있다WITH 문(CTE)로 임시 테이블을 만들어 단계별로 쿼리를 짤 수 있다이 두 가지를 “전날 온도와 비교해서 더 따뜻했던 날짜의 id를 구하는 문제”로 정리해본다.문제 요약Weather(id, recordDate, temperature) 테이블이 있다.각 날짜의 온도가 전날보다 높았으면 그 날짜의 id를 반환하라.recordDate는 날짜,날짜는 중복 없음(= 하루에 한 행) 스키마 (예시)IDrecordDatetemperature12021-01-011022021-01-022532021-01-032042021-01-0430정답은 2, 4 (각각 전날보다 따뜻함)방법 1) Self Join (자기 자신과 조인).. 2025. 10. 20. [SQL] 필드명이 예약어일 경우...!! 서론 db를 읽는중에 ERROR 1064 (42000)이 발생했다... 오타도 없었고 급한건 아니니 대수럽지않게 넘겼는데 똑같은 필드명을 가진 곳에서 또 똑같이 에러가 발생했다. 가만보니 필드명이 desc...? 아... 예약어였다... 예약어란? 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어 MySQL 예약어 ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DA.. 2023. 1. 13. [SQL] 데이터 타입(Data Type) 서론 오늘은 테이블 명세서를 정리하는 도중에 데이터타입에 대해서 확실하게 아는 것 같지 않아서 다시 정리해 보고자 합니다. 데이터 타입(Data Type)이란? 데이터 타입(자료형)이란 컴퓨터 시스템과 프로그래밍 언어에서 실수, 정수, 소수 자료형 등의 여러 종류의 데이터를 식별하는 타입으로서, 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행을 할 수 있는 명령어, 데이터의 형태, 의미, 크기와 해당 자료형의 값이 저장되는 방식입니다. MySQL데이터 타입 문자형 데이터 타입 데이터 유형 정의 CHAR(n) 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다. VARCHAR(n) 가변 길이 데이터 타입(최대 65535byte)- 지정된.. 2023. 1. 12. [SQL] 테이블의 구조와 설명을 알 수 있는 desc!! 서론 프론트 공부만 계속하다가 오랜만에 MySQL을 건드려 보는데 desc...? 제가 아는 desc는 오름차순(ASC), 내림차순(DESC)인데 이게 맞나? 싶었습니다. 아무리 봐도 테이블의 필드들이 정렬되어 있는 것 같지 않았기 때문이죠... 찾아보니... DESC 란? description의 줄임말로 특정 테이블에 어떤 column이 있는지, 구조가 무엇인지 조회해 주는 명령어입니다. 사용법 DESC 테이블명; 조회하고 싶은 테이블 앞에 DESC를 입력하면 그 테이블의 구조와 column들을 조회할 수 있습니다!! 출력 결과 정렬 방법(ORDER BY) 그렇다면 desc보고 먼저 생각이난 정렬하는 방법은 어떻게 하면 될까요? SELECT idx, name, grade FROM students_db .. 2023. 1. 11. 이전 1 다음 728x90