728x90 db5 [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. [DB] MySQL 테이블 오류 및 해결: "'Incorrect key file for table' 최근에 MySQL 데이터베이스에서 'Incorrect key file for table'이라는 에러가 발생하여 해당 문제를 해결하는 과정을 공유하고자 합니다. 이 에러는 주로 테이블에 문제가 생겼을 때 발생하는데, 다양한 원인이 있을 수 있습니다. 이번에는 테이블 용량 문제로 발생한 에러에 대한 해결 방법에 대해 알아보겠습니다. 1. 에러 확인 처음에는 MySQL 테이블을 'analyze' 명령어로 분석했지만, 테이블의 상태는 'ok'로 나와 아무 문제가 없어 보였습니다. 2. 용량 확인 그런데, 에러의 원인은 테이블 용량 문제일 수 있습니다. 터미널에서 'df -H' 명령어를 사용하여 현재 서버의 용량을 확인해보세요. 여기서 문제가 발생한 테이블이 위치한 디렉토리의 용량이 부족한지 확인해야 합니다. 3.. 2024. 1. 30. [Codeigniter] DB에서 원하는 값 가져오기! 서론 model에서 db에 insert를 해야 하는 상황인데 key값을 auto_increment로 하자니 이전 값이 삭제돼도 그 값을 기억하고 그다음 값을 입력해 줘서 사용할 수 없고, 일일이 다음 값을 넣어주기에는 이전 값에 +1만 해주면 될 것 같아 굳이라는 생각을 하게 되었습니다. 시도 과정 첫 번째 시도 $result = $this->db->select('필드명')->from('테이블명')->order_by('필드명','desc')->limit(1)->get()->row(); ❌ 값이 가져와 지지 않습니다. ▶이상하게도 NULL값도 아니고 그냥 빈 값이 나옵니다... 두 번째 시도 $result = $this->db->select('필드명')->from('테이블명')->order_by('필드명'.. 2023. 1. 20. [스파르타코딩클럽] 사전캠프 7일차 - MongoDB DB(DataBase)란? 1) DB를 쓰는 이유 데이터베이스를 한 마디로 정의하면 ‘데이터의 집합’이라고 할 수 있습니다. 데이터베이스에는 일상생활 대부분의 정보가 저장되고 관리됩니다. 오늘 보내거나 받은 카카오톡 메시지, 인스타그램에 등록한 사진, 버스/지하철에서 찍은 교통카드, 카페에서 구매한 아이스 아메리카노 등의 정보가 모두 데이터베이스에 기록됩니다. 예를들어 방을 정리하는 이유가 무엇일까요? 저는 두 가지의 이유가 있다고 생각하는데 첫 번째는 잘 넣어두기 위해, 두 번째로는 나중에 잘 찾기 위해 DB 또한 마찬가지 입니다. 우리 눈에 보이진 않지만, 사실 DB는 Index라는 순서로 데이터들이 정렬되어 있습니다! 2) DB의 두 가지 종류 Database에는, 크게 두 가지 종류가 있습니다. .. 2022. 10. 23. 이전 1 다음 728x90