mysql

    [해커랭크/SQL] Top Competitors

    www.hackerrank.com/challenges/full-score/problem Top Competitors | HackerRank Query a list of top-scoring hackers. www.hackerrank.com 문제 요약 두 개 이상의 문제를 푼 해커들의 hacker_id와 name을 조회하는 문제입니다. 문제 수를 기준으로 내림차순 하고, 문제 수가 같은 경우 hacker_id를 기준으로 오름차순 정답 코드 테이블을 조인을 이용해서 알맞게 연결하면 어려운 문제는 아니라고 생각합니다. 처음엔 테이블 연결하는 걸로 많이 해맸네여........ select s.hacker_id, h.name from submissions s join challenges c on (s.challe..

    [해커랭크/SQL] New Companies

    www.hackerrank.com/challenges/the-company/problem New Companies | HackerRank Find total number of employees. www.hackerrank.com 문제 요약 회사코드, 설립자, 각 계급별 직원수를 회사코드를 기준으로 오름차순 하여 조회하는 문제 (단, 회사코드는 문자열임 -> ex) C1 -> C11 -> C2 ... 이런 식으로 정렬) 정답 코드 조인만 해서 정렬하면 되는 문제라서 정말 간단한 문제인데 문제를 잘못 이해해서 엄청 해맸네여 ㅋㅋ... C1 -> C2 -> C3처럼 숫자 기준으로 정렬하는 문제라고 생각해서 30분을 날렸습니다. 중복 값이 있을 수도 있기 때문에 distinct를 이용해서 중복 값을 없애준 co..

    [MySQL] 서브쿼리(SubQuery)란?

    1. 서브쿼리(SubQuery) - 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 - 메인 쿼리를 외부 쿼리(outer), 서브쿼리를 내부 쿼리(inner)라고 부름 - 서브쿼리는 메인쿼리와 종속적인 관계에 있는 쿼리이고, 메인쿼리가 부모쿼리 서브쿼리가 자식쿼리가 됨 → 그렇기 때문에 메인쿼리에서는 서브쿼리의 컬럼을 사용할 수 없지만, 서브쿼리에서는 메인쿼리의 컬럼을 사용할 수 있음 (자바의 상속과 같음) - 서브쿼리가 포함된 쿼리문의 실행 순서는 서브쿼리 -> 메인쿼리임 2. 서브쿼리의 특징 - 서브쿼리는 반드시 괄호() 안에 작성되어야 함 - select문으로만 작성이 가능함 - 괄호가 끝나고 새미콜론(;)을 쓰지 않음 - 특수한 경우를 제외하고 ORDER BY 사용 불가 - 별칭(Alias)..

    [MySQL/해커랭크] Weather Observation Station 20

    www.hackerrank.com/challenges/weather-observation-station-20/problem Weather Observation Station 20 | HackerRank Query the median of Northern Latitudes in STATION and round to 4 decimal places. www.hackerrank.com 이 문제는 위도의 중간값을 구하는 문제입니다. Oracle에서는 median이라는 함수를 사용해서 쉽게 구할 수 있지만 MySQL에서는 지원을 하지 않기 때문에 직접 구해야 합니다..ㅠ 중간값이란 데이터를 정렬했을 때 가운데 순번에 있는 숫자를 말합니다. (이때, 정렬 기준은 오름차순이던 내림차순이던 상관없습니다) set @row..

    [MySQL/해커랭크] The Report

    www.hackerrank.com/challenges/the-report/problem The Report | HackerRank Write a query to generate a report containing three columns: Name, Grade and Mark. www.hackerrank.com 문제를 간단히 요약해보면 등급 순, 이름순으로 학생들의 이름, 등급, 점수를 조회하는 기초적인 조인 문제입니다. 등급이 8미만인 학생들의 이름은 NULL 처리를 해줘야 하는 조건이 있습니다. 정답 코드 select if(g.grade < 8, null, s.name), g.grade, s.marks from students s join grades g on (s.marks between g.min..