
문제Lv.4 / GROUP BY테이블이 3개 주어지긴 했지만 사용할 테이블은 HR_EMPLOYEES와 HR_GRADE 2개이다.일단 HR_GRADE 테이블을 보면 HALF_YEAR라는 컬럼을 통해 연도가 다시 분기로 나누어져있다."사원별"로 성과금을 조회해야하기 때문에

문제Lv.2 / GROUP BY상대적으로 어렵지 않은 문제였다.처음에는 CASE문을 사용해서 구분해야하나 했는데, PRICE 값에 상한이 없어서 모든 경우의 수를 지정하기가 어려웠다.그래서 생각한게 PRICE의 값을 가지고 계산하는 방식이다.PRICE를 10000으로
문제 Lv. 3 / SELECT 문제 흐름 크게 어려울 것 없이 문제에서 요구하는 대로 하면 되는 문제였다. SIZEOFCOLONY를 CASE문을 통해 100 이하면 'LOW', 100 초과 1000 이하면 'MEDIUM', 1000 초과면 'HIGH'로 변환하도록

문제순간 어떻게 해야하지? 했는데 SELECT 문제지만 그냥 LEFT JOIN을 이용해서 내가 이해한대로 직관적으로 풀이하기로 했다.ID와 PARENT_ID를 기준으로 LEFT JOIN해서 각 ID에 대한 자식들을 모두 연결시켜준 뒤 COUNT를 통해 집계했다.오늘 두

문제 Lv. 5 / SELECT, WITH RECURSIVE 문제 흐름 처음에는 단순히 JOIN과 CASE문을 통해서 어떻게 할 수 있지 않을까? 했는데 생각같이 GENERATION컬럼을 만드는게 쉽지 않았다. 그러다 예전에 문제를 풀면서 재귀적으로 번호를 생성하는

문제Lv.2 / SELECT문제를 보아하니 저번에 python 문제를 풀 때 이용했던 비트마스킹을 이용하면 되겠다 싶었다.일단 부모의 형질을 연결지어주기 위해서 같은 테이블을 JOIN한다.왼쪽을 현재 대장균, 오른쪽을 부모 대장균이 되도록 JOIN했다.그리고 현재 대장

문제Lv. 2 / GROUP BY구하고자 하는 내용은 어렵지 않았다.ROUTE를 기준으로 묶어 합과 평균을 구하기만 하면 된다.테스트케이스는 바로 통과했지만 제출 후 오답을 받았는데 이에 대해서 고민을 좀 했다.원인은 ORDER BY 부분이었다.이전에는 ORDER BY

문제Lv. 4 / SELECT이 전에 풀었던 WITH RECURSIVE를 이용하면 간단하게 풀 수 있다.재귀쿼리를 통해 GENERATION을 계산하고 GENERATION이 3이라는 조건을 달아주면 된다.이전에 풀었던 문제랑 딱 봐도 흐름이 같아서 생각하는데는 오래 걸리

문제Lv. 4 / SELECT처음에 혹시 MySQL에 QUANTILE이라는 함수가 있는건 아닐까..?! 해서 찾아봤는데 그건 아닌 것 같다.얌전히 RANK를 활용해서 백분위를 계산했다.상위로 계산해야하는데, 처음에는와 같이 작성했었다. 참고로 틀렸다.괜히 돌아서 가는

문제(https://school.programmers.co.kr/learn/courses/30/lessons/284529Lv. 3 / GROUP BY레벨에 비해 정답률이 높아보이는 문제였는데 역시 간단했다!각 직원들의 데이터에 부서의 데이터를 LEFT JOIN

문제Lv. 2 / GROUP BY쉽다! 고 생각했는데 살짝 삐끗한 부분이 있었다.생각한대로라면 SUM과 MAX를 동시에 사용해야하는데 SUM에만 GROUP BY로 그룹화 지정이 들어가야했다.한번에 하고싶어서 이래저래 많이 에러를 봤다.하지만 역시 한번 그룹화를 통해 토

문제Lv. 3 / SELECT / 2021 Dev-Matching: 웹 백엔드 개발자(상반기)문제에서 설명한 그대로 HOST_ID별로 ID를 카운트하고 그 수가 1보다 큰 ID를 추출한 뒤 이를 WHERE에서 조건으로 주어 추출하면 된다.NAME의 값이 중복되지 않는다

문제Lv. 4GROUP BY JOINSummer/Winter Coding(2019)이 문제는 특별히 두가지 방법으로 풀었다.따로 여러 방법이 생각나서는 아니고... 사실 풀만하다고 생각했는데 중간에 막혀서 다른 방법을 생각해봤고 이후 원래 방법으로도 풀어냈기 때문이다.

문제✔️ 난이도 1예전에 풀다가 틀린채로 잠시 접어뒀던 문제를 찾았다.문제는 참 간단한데 왜 틀렸을까 봤는데 데이터에 대한 이해가 부족했던 것 같다.데이터를 잘 살펴보면 컬럼에 대한 설명이 다음과 같이 되어있다.string order_id 주문 IDinteger ord

문제✔️ 난이도 2베이스 테이블은 선수의 정보가 들어있는 records로 잡았다.선수 정보에 참가한 경기 이름을 매칭시키기 위해 참여 경기 id를 key로 records테이블과 left join을 했다.그렇게 경기 이름을 "Golf"로 조건을 걸어준 뒤 athlete_

문제✔️ 난이도 2구체적으로는 각 요일의 시간대별 평균 팁은 얼마인지, 평균 일행 수는 몇 명인지 확인하고자 합니다.➡️ 요일day, 시간대time를 GROUP BY하여 팁tip과 일행 수size의 AVG 함숫값을 구한다.평균 팁과 평균 일행 수는 소수점 아래 셋째 자

문제✔️ 난이도 4일별 주문 수가 10개 이상인 날 중에서,➡️ 조건 1order_date별 DISTINCT order_id의 수가 10 이상인 레코드를 필터링한다.GROUP BY - COUNT 를 사용해서 구해야하는 값이므로 HAVING을 이용한다.order_date

문제✔️ 난이도 4레코드에 순위를 매기고자 할 때 대표적으로 생각나는 세가지 함수이다.RANK, DENSE_RANK, ROW_NUMBER는 전부 다음과 같은 포맷을 가지며,특정 기준에 따라 순위를 매길 수 있는 윈도우 함수이다.윈도우 함수는 특성상 WHERE절이나 HA

문제✔️ 난이도 5이전 또는 다음 행의 값을 참조하는 데 사용되는 윈도우 함수이다.각각의 세부 사용법 및 특징과 차이점에 대해 알아보자.현재 레코드의 이전 레코드를 참조column_name: 참조할 컬럼, 필수offset: 몇번째 이전 행을 가져올지 설정, 디폴트 1d

문제SQL에서 데이터를 그룹화하지 않고도 집계와 분석 작업을 수행할 수 있게 해주는 기능OVER 절을 통해 윈도우(계산 범위)를 정의하며, 각 행에 대해 계산된 결과를 반환기본적으로 데이터가 사라지지 않고, 각 행마다 결과가 추가PARTITION BY를 통해 그룹화 진
문제 ✔️ 난이도 5 문제 흐름 일단 문제 풀이 자체는 그렇게 어렵지 않습니다만 ... 계산이 복잡해서 머리가 살짝 아픈 느낌이다. > 정류소 정보가 저장된 station 테이블을 사용해 반경 300m 이내에 나중에 생기거나 업그레이드 된 다른 정류소가 5개 이상 있는 따릉이 대여소의 아이디(station_id)와 이름(name)을 출력하는 쿼리를 작...

문제✔️ 난이도 3먼저 말해보자면 두가지 방법으로 해결했다!간단한 문제인 만큼 간단한 풀이들이지만문득 어떤 풀이가 현업에서의 데이터 크기에서도 무리 없이 작동할 수 있을 만큼 효율적일까? 하는 생각이 들었다.애초에 첫번째 풀이가 비효율적이라는 생각이 들어서 두번째 풀이

문제✔️ 난이도 3고객이 Olist 상점에서 신용카드로 주문한 내역을 할부 개월 수 별로 나누어 살펴보려고 합니다.➡️ 베이스 테이블, 그룹화 기준, 조건olist_order_payments_dataset 테이블을 베이스 테이블로 잡아payment_type이 "cred

문제✔️ 난이도 32000년 이후의 메달 수상 기록만 고려했을 때,➡️ 조건record 테이블을 베이스로 잡는다.메달 수상 기록 연도는 games 테이블의 year 컬럼에 있다.year가 2000 이상이면서, medal이 NULL이 아닌 레코드를 WHERE를 이용해서

행의 데이터를 열로 변환하여 요약 정보를 표시하는 방법이다.주로 데이터를 요약하거나 집계하기 위해 사용특정 열의 고유 값들을 새로운 열로 변환하고, 다른 열의 값을 이 열에 대응하여 집계fixed_column: 피봇테이블으로 변환 후에도 유지되는 열 (그룹화 기준 1)

문제✔️ 난이도 32017년 1월 한 달 동안 발생한 주문의 배송 예측이 정확했는지 분석을 하려고 합니다.배송 완료 또는 배송 예정 시각 데이터가 없는 경우는 계산에서 제외합니다.➡️ 조건구매 시각 order_purchase_timestamp가 2017-01-01부터

문제✔️ 난이도 3두 테이블을 이용해 2018년 1월 1일 이후 일별로 집계된 쇼핑몰의 결제 고객 수, 매출액, ARPPU를 계산하는 쿼리를 작성해주세요.ARPPU는 Average Revenue Per Paying User의 약자로, 결제 고객 1인 당 평균 결제 금액

문제✔️ 난이도 1games 테이블에서 게임 이름에 "Christmas" 또는 "Santa"가 포함된 게임을 찾는 쿼리를 작성해주세요.games 테이블에서 name에 'Christmas'가 포함되거나, 'Santa'가 포함되는 레코드를 필터링해야한다.특정 문자열 포함

문제✔️ 난이도 1문자열에서 부분 문자열을 추출할 때 사용 가능한 함수이다.start가 양수일 경우 string의 왼쪽에서 start개의 문자를 추출하고,start가 음수일 경우, string의 오른쪽에서 abs(start)(절댓값)개의 추출한다.Ex: SUBSTR('

문제station 테이블을 활용해 소속 지자체별 따릉이 정류소의 개수를 집계하는 쿼리를 작성해주세요. 쿼리 결과에는 아래 2개의 컬럼이 있어야 합니다.station 테이블을 베이스 테이블로 잡고,소속 지자체 local을 기준으로 그룹화하여station_id의 개수를 중

문제✔️ 난이도 2page_location 컬럼의 값이 언더스코어('\_')를 포함하지 않는 경우만 출력하는 쿼리를 작성해주세요. ➡️ 문자열 탐색LIKE를 통한 문자열 탐색에서 \_는 "한 문자"를 나타내는 와일드카드이고,%는 "문자열"을 나타내는 와일드카드이다.와일

문제✔️ 난이도 2데이터베이스를 조회해 퍼블리셔로 참여한 게임이 10개 이상인 회사의 이름을 출력하는 쿼리를 작성해주세요.게임의 목록은 games 테이블에 있고 이 테이블에는 게임 id, 퍼블리셔 id 등이 포함되어있다.하지만 출력해야하는 컬럼은 회사의 이름인데, 이는

문제✔️ 난이도 2artworks 테이블에서는 MoMA가 소장한 작품의 정보가 있습니다. 작품 정보 중 credit 컬럼에 'gift'라는 단어가 등장하는 작품은 MoMA가 다른 사람이나 단체로 부터 기증 받은 기증품이라는 뜻입니다.소장품 중 부분 기증품을 포함한 기증

문제✔️ 난이도 3위 두 테이블의 데이터를 조합해 월 별로 취소 주문을 제외한 주문 금액의 합계, 취소 주문의 금액 합계, 그리고 총 합계를 계산하는 쿼리를 작성해주세요. order_id가 C로 시작하는 주문이 취소 주문입니다.➡️ 집계 내용문제에서 위 두 테이블이란

문제 ✔️ 난이도 3 문제 흐름 > 2015년 이후에 발매한 게임 중 누락된 평점 정보가 있는 게임에 대해서 > 쿼리 결과에는 누락된 평점 정보가 있는 게임만 포함되어야 하며, ➡️ 조건 year가 2015보다 크고, criticscore나 userscore가

문제✔️ 난이도 2points 테이블에서 가장 큰 x 값을 가지는 데이터와 가장 큰 y 값을 가지는 데이터의 id를 출력하는 쿼리를 작성해주세요. 결과는 오름차순으로 정렬해주세요.x와 y에 각각 max 함수를 적용시켜야 한다.각각 id와 max 함수 적용값을 서브쿼리로

문제✔️ 난이도 3measurements 테이블의 데이터를 조회하여 요일별 대기 오염도 평균을 계산하는 쿼리를 작성해주세요.weekday: 요일 (월요일-일요일)➡️ 집계 내용"요일별"을 계산헤야하는데, 이 테이블에는 date 타입의 measured_at 컬럼만 있다.

문제✔️ 난이도 2아래와 예시와 같은 형태로 각 분류에 대해 연도별 추가된 소장품 수를 집계하는 쿼리를 작성해주세요.각 행은 분류(classification) 컬럼 기준으로 오름차순 정렬되어 있어야 합니다.또한, 집계하는 3년간 추가된 특정 분류의 소장품이 없더라도 해

문제✔️ 난이도 4개발사마다 주력 플랫폼은 보통 판매량이 가장 많은 플랫폼으로 생각할 수 있습니다. games 테이블, companies 테이블, platforms 테이블을 조회해 각 게임 개발사의 주력 플랫폼과 해당 플랫폼의 판매량 합계를 집계하는 쿼리를 작성해주세요

OVER에서 PARTITION BY를 통한 그룹화, ORDER BY를 통한 정렬만 있는 줄 알았는데, ROWS를 통해서 특정 범위 내의 레코드를 지정하여 윈도우를 구성할 수 있었다.아래를 통해 자세히 알아보자.start부터 end까지의 레코드들으로 윈도우를 구성star

문제✔️ 난이도 32019년 10월 한 달 동안 정류소에서 발생한 대여/반납 건수가 2018년 10월 같은 정류소에서 발생한 대여/반납 건수의 50% 이하인 정류소를 출력하는 쿼리를 작성해주세요. 2018년 10월 또는 2019년 10월 한 달간 대여/반납 건수가 0건

문제✔️ 난이도 5books 테이블의 데이터를 사용해 5년 이상 연속으로 베스트셀러 작품 목록에 이름을 올린 소설 작가와 연도 정보를 출력하는 쿼리를 작성해주세요.쿼리 결과는 아래 결과를 포함해야 합니다.author - 작가 이름year - 연속 베스트셀러 기간 중 가

문제✔️ 난이도 3아래 세 플랫폼 계열은 점유율이 높은 메이저 플랫폼 계열입니다.Sony: 'PS3', 'PS4', 'PSP', 'PSV'Nintendo: 'Wii', 'WiiU', 'DS', '3DS'Microsoft: 'X360', 'XONE'데이터베이스를 조회해

sql에서 제곱과 루트는 함수를 통해 계산할 수 있다.column_name 값을 exponent승 제곱한 값을 반환한다.꼭 SQUARE라는 함수가 존재할것만 같아서 매번 없는 함수를 사용하게 된다.Square Root의 약자로 column_name 값의 제곱근을 반환한

SQLite 공식 문서 Built-In Scalar SQL Functions(https://www.sqlite.org/lang_corefunc.html\`main_str\`에서 search_str가 처음 나타나는 위치를 찾아 그 인덱스를 반환한다.만약 없다면,

문제✔️ 난이도 33월 1일부터 5월 31일까지를 ‘spring’, 6월 1일부터 8월 31일까지를 ‘summer’, 9월 1일부터 11월 30일까지를 ‘autumn’, 나머지를 ‘winter’라고 이름 붙이고 각 계절별로 미세먼지 농도의 중앙값과 평균을 계산하는 쿼리

문제✔️ 난이도 5세션을 종료하는 기준을 사용자가 10분 이상 행동하지 않을 때로 수정하여, 사용자 'a8Xu9GO6TB’의 세션을 재정의해 세션 ID를 계산하는 쿼리를 작성해주세요.재정의한 세션 ID는 1부터 시작해 세션 시작 시간이 빠른 순서대로 1씩 증가하는 자연

문제✔️ 난이도 3edges 테이블에는 사용자의 친구 관계 정보가 들어있는데 각 행의 user_a_id 컬럼 사용자와 user_b_id 컬럼 사용자가 서로 친구 관계라는 의미 입니다.데이터베이스에 포함된 모든 사용자에 대해 각 사용자의 친구 수를 집계해 출력하는 쿼리를

문제✔️ 난이도 4‘연도별로 새롭게 소장하게 된 작품의 수’와 같이 일정 기간 동안 측정되는 지표를 ‘유량(Flow) 지표’라고 하고, ‘누적 소장 작품 수’와 같이 특정 시점에 측정되는 지표를 ‘저량(Stock) 지표’라고 합니다. 미술관의 소장 규모를 파악하기 위해

문제✔️ 난이도 4소셜 네트워크 분석에서는 세 명의 사용자가 서로 친구 관계인 경우를 중요하게 생각합니다.일반적인 사용자는 세 명의 사용자가 서로 친구인 경우가 다수 있지만, 스팸 사용자 또는 친구 관계를 무작위로 맺는 사용자의 경우 전체 친구 수에 비해 세 명의 사용

문제✔️ 난이도 1Advent of SQL 2024 챌린지에 참여해주셔서 감사합니다. 🙇챌린지 기간 동안 매일 공개되었던 문제가 SQL 공부와 연습에 많은 도움이 되었길 바랍니다. 오늘은 미리 공개된 문제 복습도 하고 즐거운 성탄절을 보내시라는 의미로 간단한 문제를

문제✔️ Lv. 4developers의 skill_code를 표현하는 방식을 bitmasking이라고 하는 걸로 기억한다.비트를 통해 정보를 표현하는 방식이다.이러한 방식은 어떻게 확인할 수 있는가?바로 AND(&)연산이다.정보 비트x와 와 확인하고 싶은 정보 비트y를

문제 ✔️ Lv. 4 문제 흐름 이전에 풀었던 언어별 개발자 분류하기 문제를 해결한 뒤라 전혀 어려울 게 없었다. 이 문제의 작은 버전이라고 생각하면 되겠다. 모든 Front End 카테고리 스킬의 code를 전부 더한 값과 AND 연산을 했을 때 0보다 크다면

문제예전에 풀었던 문제임에도 여전히 어렵다. 또 헤맸다.그전에도 프로그래머스에서 가장 풀기 어려운 SQL 문제라고 생각했었다.여전히 같은 부분을 캐치하지 못하고 이전 풀이를 참고하여 여러 번의 시도 끝에 풀이했다.이래서 복습이 중요한가보다.이 문제는 크게 3가지 흐름이

문제✔️ Lv. 4살짝 고민했지만 길어지는 코드에서 집중만 잘 이어간다면 어려울 건 없는 문제였다.대신 요즘 자주 안봐서 그런지 이상한 곳에서 문법 실수를 꽤나 했다.WITH를 이용한다면 좀더 논리적으로 쉽게 접근할 수 있다.자동차 종류가 '트럭'인 자동차의 대여 기록

Lv. 4 / 저자 별 카테고리 별 매출액 집계하기2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 \* 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEG

/ 입양 시각 구하기(2)보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.단순하게 현재 가진 테이블을

hard / 185. Department Top Three Salaries이번 문제는 특별히 Oracle을 이용해 해결했다.며칠동안은 코테 덕에 Oracle에 적응하는 것을 목표로 하고있다.문제에서 특별한 부분은 없었다.A company's executives are