발단 유튜브 광고를 보다가 스파르타 코딩 클럽에서 나만의 프로필 링크 페이지 만들기 무료 강의 가 있길래 눌러보았더니 매일 선착순 200명에게 제공한다고 써있었다. 설마 싶어 신청해보니 신청되었고, 강의를 따라 30분만에 나만의 페이지를 만들게 되었다. 여담 빅데이
어떤 직업이 사람 수가 가장 많은지 알아야 가능한 풀이로 접근했다.각 직업마다 가상 테이블을 만들었고, 교수가 직업인 사람이 7명으로 가장 많아 row_number를 키로 left join을 사용했다.원래는 full outer join을 사용하려 했으나 MySQL에서는
(20, 20)의 순서쌍도 하나만있으면 symmetric이 아니라 다음과 같이 서브쿼리를 이용해 나온 뷰에서 x, y를 기준으로 group by 했을 때, 같은 순서쌍의 개수가 2 이상인 것들만 출력하였다.
문제 풀이 처음에는 하나의 쿼리문으로 답을 내야하는 줄 알고 union all을 사용하여 다음과 같이 작성하였는데, 사람 이름이 알파벳순으로 정렬되지 않았다. 아직도 이유를 잘 모르겠다... 그래서 혹시 두 개의 쿼리문으로 작성해도 되는 건가 싶어 해보니 세상에
if 문을 사용하여 다음과 같이 작성할 수 있다.case 문을 사용하여 작성할 수도 있다. 그런데 이상하게 if 문이 먼저 생각난다.
id에 따른 salary 데이터를 담은 테이블 하나와 friend_id에 따른 salary 데이터를 담은 테이블 하나를 만들어 join하고 본인보다 많이 버는 친구를 골라 그 친구들의 salary를 기준으로 정렬하였다.뭔가 무식하게 한 것 같은데 더 깔끔한 풀이가 있을
글이 길어 풀기 싫어서 미루고 있었는데, 아침에 잠도 깰겸 천천히 읽어보았다.영어 공부를 해야겠다는 생각이 들었다. 우선 company_code와 founder에 대하여 group by를 해줄 것이기 때문에 계속 join할 수 밖에 없었다.그렇지 않으면 employee
처음에는 단순하게 end_date에 있는 것이 start_date에 있으면 하나로 합치려고 join을 이용하여 다음과 같이 쿼리를 작성하였다.위의 쿼리의 문제점은 다음과 같다.3일 이상 진행 된 project는 알 수 없다.그래서 하나의 project가 여러 개의 pr
이 책에서는 첫 실무 데이터를 MySQL Sample Database Diagram으로 설정하였다.DB Diagram은 다음과 같다.그동안 해커랭크와 프로그래머스 문제를 풀면서 테이블간의 관계가 이렇게 많아진 것은 보지 못해서 처음에는 낯설었지만, SQLD 시험을 준비
https://www.hackerrank.com/certificates/67bb2bb61251
우선 학생의 점수가 몇등급인지 알 수 있도록 두 테이블 students, grades를 join해야한다.이때 on 조건에서 값이 같을 수가 없으므로 between 함수를 사용하였다.또한, 8등급 미만인 학생의 이름은 NULL 처리를 해야하므로 select 절에서 if
이 문제 하나 푸는데 거의 2시간이 걸렸다.처음에는 쉽게 접근하다가 문제의 조건인 아래 2가지를 해결하는데 정말 애먹었다.total 값이 중복이 되면 그 행은 보여주지 않는다.그러나 total 값이 최댓값이면 중복이어도 보여준다.처음에는 와 같이 집계함수 안에 집계함수
처음에는 cart_id를 기준으로 group by 절을 사용하여 테이블을 만들고 group_concat을 이용하여 다음과 같이 풀어보려 했다.위와 같이 입력하자 where 절에서 오류가 났다. 왜 오류가 났는지는 아직 모르겠다.그래서 where 절을 두 번 사용하여 단
마지막에 order by 절을 사용할 때 t1.totalscore이라고 해서 계속 틀렸다.
서브쿼리가 익숙하지 않아 개인적으로 정말 어려운 문제였다.처음에는 모든 정보를 담은 테이블을 하나 만들어서 조건을 걸려고 헀는데 그렇게 되면 coins_needed에 대한 조건을 걸수 없었다.따라서 wands 테이블에서 id를 제외한 나머지 열들로 coins_neede