본문 바로가기

SQL12

[프로그래머스 SQL - GROUP BY] 입양 시각 구하기(2) 입양 시각 구하기(2) 문제 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 예시 갑자기 난이도가 급상승 했습니다. 로컬 변수를 활용해 푸는 방법으로 하겠습니다. 문제에서 원하는 것은 0~23시 까지의 시간대를 표시.. 2021. 7. 7.
[프로그래머스 SQL - GROUP BY] 입양 시각 구하기(1) 입양 시각 구하기(1) 문제 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 예시 문제에서 원하는점은 GROUP BY를 사용해 시간별로 묶어주기 시간대별로 COUNT를 사용 시간대순으로 정렬 이렇게 3가지 .. 2021. 7. 7.
[프로그래머스 SQL - GROUP BY] 동명 동물 수 찾기 동명 동물 수 찾기 문제 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요. 예시 문제에서 원하는건 GROUP BY를 사용해 NAME을 묶어준다 2번이상 쓰인 이름을 찾기때문에 H.. 2021. 7. 6.
[프로그래머스 SQL - GROUP BY] 고양이와 개는 몇 마리 있을까 고양이와 개는 몇 마리 있을까 문제설명 예시 문제에서 원하는건 ANIMAL_TYPE에 따른 COUNT GROUP BY를 사용해 묶어서 COUNT 결과를 ANIMAL_TYPE순으로 ORDER BY 할수있는지 이렇게 3가지 입니다. 먼저 GROUP BY를 사용해 ANIMAL_TYPE( 동물 종류 ) 별로 묶어 보겠습니다. SELECT * FROM ANIMAL_INS GROUP BY ANIMAL_TYPE 이러한 결과가 나오는데 우리가 원하는 건 동물 종류별 수 즉 COUNT를 사용해서 원하는 컬럼만 추려서 보여줘야합니다. SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE 여기서 끝이 아닙니다. 문제에서 고양이를 개보다 먼저 .. 2021. 7. 1.
[프로그래머스 SQL - SUM, MAX, MIN] 중복 제거하기 중복 제거하기 문제설명 예시 문제에서 원하는건 두가지 입니다. 동물의 이름이 중복일 경우 하나로 카운트 NULL값 제외 먼저 이름이 NULL인 동물부터 제거를 해보겠습니다. SELECT * FROM ANIMAL_INS WHERE NAME IS NOT NULL IS NOT NULL을 사용해 NAME이 NULL이 아닌 데이터들만 불러왔습니다. 그럼 DISTINCT 함수를 사용해 결과를 출력하겠습니다. DISTINCT함수는 중복을 제거해주는 간편한 함수입니다. 형식은 DISTINCT 원하는 컬럼으로 사용해 주시면 됩니다. SELECT DISTINCT NAME FROM ANIMAL_INS WHERE NAME IS NOT NULL 이렇게하면 중복이 제거된 동물이름을 모두 확인 하실 수 있습니다. 하지만 문제에서 .. 2021. 6. 28.
[프로그래머스 SQL - SUM, MAX, MIN] 최솟값 구하기 최솟값 구하기 문제설명 예시 문제에서 원하는것은 DATETIME에서 가장 작은값을 출력하길 원하고 있습니다. 쿼리로 데이터를 가져올때 가장 작은 값은 MIN함수로 가장큰값은 MAX함수로 가져올 수 있습니다. 숫자형 뿐만 아니라 DATE형으로도 가져올 수 있습니다. 실제 사용해 보겠습니다. 사용법은 간단하게 SELECT에 써주시면 됩니다. 형식은 MIN(원하는 컬럼) 입니다. SELECT MIN(DATETIME) FROM ANIMAL_INS 반대로 최대값을 뽑으려면 MAX함수를 사용할 수 있습니다. 출처:[프로그래머스 코딩테스트 연습] - https://programmers.co.kr/learn/courses/30/lessons/59038 2021. 6. 24.
[프로그래머스 SQL - SUM, MAX, MIN] 최댓값 구하기 최댓값 구하기 문제설명 예시 문제에서 원하는것은 DATETIME에서 가장 큰값을 출력하길 원하고 있습니다. 쿼리로 데이터를 가져올때 가장큰값은 MAX함수로 가장 작은 값은 MIN함수로 가져올 수 있습니다. 숫자형 뿐만 아니라 DATE형으로도 가져올 수 있습니다. 실제 사용해 보겠습니다. 사용법은 간단하게 SELECT에 써주시면 됩니다. 형식은 MAX(원하는 컬럼) 입니다. SELECT MAX(DATETIME) FROM ANIMAL_INS 반대로 최소값을 뽑으려면 MIN함수를 사용할 수 있습니다. 출처:[프로그래머스 코딩테스트 연습] - https://programmers.co.kr/learn/courses/30/lessons/59405 2021. 6. 15.
[프로그래머스 SQL - SELECT] 상위 n개 레코드 상위 n개 레코드 문제설명 예시 문제에서 원하는건 3가지입니다. NAME(이름)만 조회하는 것 DATETIME중 가장 먼저의 날짜를 조회하는 것 가장 먼저 들어온 동물이기 때문에 한마리만 조회하는것 우선 이름만 조회하는 것을 해보겠습니다. SELECT NAME FROM ANIMAL_INS; 그 후 ORDER BY를 사용해 먼저들어온 순으로 조회를 해보겠습니다. SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME ASC; 문제에서 가장먼저 들어온 동물의 이름을 조회하라 했기 때문에 LIMIT을 써줍니다. LIMIT은 테이블의 데이터 조회시 LIMIT이라는 뜻 그대로 '한계'를 정할수 있는겁니다. 말이 어렵지만 결국 몇개 뽑아와라 라는 말과 같습니다. SELECT NAME FR.. 2021. 6. 11.
[프로그래머스 SQL - SELECT] 여러 기준으로 정렬하기 여러 기준으로 정렬하기 문제 설명 예시 문제에서 중요한점은 두 가지 입니다. ANIMAL_ID, NAME, DATETIME (동물의 아이디, 이름, 보호시작일)을 조회하는 것 NAME(이름)으로 먼저 정렬후 DATETIME(보호시작일)을 역순으로 조회하는 것 먼저 ANIMAL_ID, NAME, DATETIME을 조회하겠습니다. SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS SELECT에 조회를 원하는 컬럼을 써주어서 완성했습니다. 한가지 조건이 더 있었죠 NAME으로 정렬 후 보호시작일을 역순으로 정렬하는 겁니다. ORDER BY로 정렬 할 컬럼이 여러가지일 경우에는 ORDER BY 컬럼1 정렬방법, 컬럼2 정렬방법 이렇게 해주시면 간단하게 하실수 있습니다. 우리.. 2021. 6. 11.
728x90