문제 링크USER_INFO 테이블에서 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 USERS로 지정해주세요.
이렇게만 제출해도 성공은 됐지만, 더 정확하게 하고 싶어서 order by문을 추가하였다.ORDER BY는 SELECT문에서 나온 결과를 정렬할 때 사용한다.정렬에는 오름차순(Ascending) 과 내림차순(Descending)이 존재하고,각각 앞자리를 따서 ASC(오
PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요.
상위 n개의 레코드만 가져오고 싶을 때 = 원하는 만큼의 행을 가져오고 싶을 때LIMIT은 SQL문의 가장 마지막에 적는다.
🔵 1 : INTAKE_CONDITION이 Sick 인 경우를 뜻함문제 링크
이름 순 정렬, 같은 이름 중에서 보호 시작일 내림차순 정렬을 위해이름으로 정렬 -> 날짜 내림차순 정렬을 진행했다.
DISTINCT : 중복제거 키워드
문제 제출 📌 배운 내용 정리 ✅ NULL값 처리 IFNULL NULL값을 처리하는 가장 간단한 방법 IFNULL은 IF로 대체 가능하기도 하다. 는 와 같다. CASE CASE는 NULL 치환은 물론, 조건에 따른 분기를 더욱 추가할 수 있다. ( = switch문) COALESCE COALESCE는 매개변수 중 NULL이 아닌 첫 번째 ...
SQL에서 특정 문자를 포함하는 경우, LIKE '%특정문자%' 를 사용!
DATE_FORMAT(DATE, 형식)%Y(4자리 연도), %y(2자리 연도), %m(월), %d(일), %H(24시간), %h(12시간), %i, %s가 있습니다.date_format(datetime,'%Y-%m-%d')참고 블로그표 참고 블로그
IFNULL(컬럼 이름, 'NULL일 경우 대체할 값')
price 컬럼을 내림차순으로 정렬하고 가장 상위 1개 행(가장 비싼 식품)만 가져오도록 구성했다.서브쿼리를 이용해 price 컬럼에서 가장 큰 데이터를 가져오고 해당 행을 가져오도록 구성되었다.
A 이상 B 이하의 범위 지정하는 조건식
집계함수 SUM() SELECT 문에서 단독 사용시 문제 X
SUBSTIRNG : 문자열을 받아 주어진 시작위치부터 주어진 길이만큼 자름
SELECT → FROM → JOIN → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT
문제 제출 📌 새로 배운 내용 ✅ 조건문 IF 밑 또 다른 답에서 사용 CASE 조건 1일 때 -> 값1 동작 조건 2일 때 -> 값2 동작 아무 조건도 충족하지 않을 때 -> else 문의 값3 동작 이 방식은 컬럼명이 어떤 값과 같은지만 비교하는 경우에는 가능 범위를 비교할 때는 사용 불가!!! 또 다른 답 참고 블로그
문제 제출 📌 새로 배운 내용 ✅ HAVING 절 동작은 where절과 같지만, group by 된 후 그룹화 된 데이터들에 조건을 매긴다. 주어진 문제에서 where 절에는 select 별칭을 쓰지 못했지만, having 절은 select 문 후 실행되므로 별칭
문제 제출 📌 새로 배운 내용 ✅ REGEXP (정규표현식) 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. 문자열을 처리하는 방법 중의 하나로, 특정한 조건의 문자를 ‘검색’하거나 ‘치환’하는 과정을 매우 간편하게 처리할 수 있도록 해주는 수단이다. 정규 표현식은 Pattern을 사용해서 문자열을 처리한다. 패턴은 아래와 ...
문제 제출 📌 새로 배운 내용 ✅ JOIN > **JOIN 원하는 테이블 AS 약칭 ON 기준1 = 기준2** INNER JOIN : 교집합의 개념 OUTER JOIN LEFT JOIN 에 초점을 맞춘 Join A에 해당하는 데이터들은 모두 호출 B에서는 A와 동일할 때만 호출, 아닌 경우 NULL RIGHT JOIN ...
문제 제출 푸는 과정 ANIMALINS 테이블과 ANIMALOUTS을 left join 시켜 ANIMALOUTS 테이블쪽에 null 값인 animalid를 추출한다. → 보호소에는 있지만, 아직 입양가지 못한 동물 id ANIMAL_INS 테이블의 입양 날짜 컬럼(datetime)을 오름차순 시키고, 상위 3개만 뽑아낸다. 또 다른 답
문제 제출 📌 새로 배운 내용 ✅ 부등호(=, >, <) 연산자를 사용하여 날짜 조회 2023-11-01 ~ 2023-11-30 까지의 날짜 조회 또 다른 답
문제 제출 또 다른 답 '2022-01' 문자열을 포함하는 행만 필터링 되도록했다. 날짜 조건 비교문을 다르게 쓸 수 있다. 달만 추출해서 1월인 데이터 추출 부등호 사용 DATE_FORMAT 사용
문제 제출 📌 새로 배운 내용 간단하게 일(day) 차이를 구할 때는 함수를 사용. 이외에 연(year), 월(month), 시간(hour), 초(second) 등을 지정하여 구할 때는 함수를 사용 ✅ DATEDIFF > DATEDIFF(날짜1, 날짜2); : 날짜1 - 날짜2 b.datetime - a.datetime 값으로 내림차순 정렬...
문제 제출 헤맨 부분 "완료된" 중고 거래를 필터링해야 하는데 테이블 속성들 제대로 안 보고 당연히 다 완료된 중고 거래인 줄 알아서 where 절 빼놓고 수행했다. 결과는 끝없는 오답.. → 문제, 데이터 잘 보기 !!!
문제 제출 📌 복습 내용 ✅ IN IN WHERE 절에서 사용되며, 지정된 값 목록중 하나와 일치하는 모든 행을 검색하는데 사용된다. 위의 SQL문에서 IN 절은 column_name의 필드 값이 value1, value2, value3 과 일치하는 모든 행을 반환한다. NOT IN 일치하지 않는 모든 행을 반환한다. 또 다른 답 IN 사용 ...
문제 제출 제출 1 제출 2 식품분류별 가장 비싼 식품의 정보 조회하기와 비슷한 문제
문제 제출 📌 새로 배운 내용 ✅ round 정해진 자릿수에 따라 반올림을 하는 역할을 하는 함수 > 숫자(컬럼) : 반올림할 대상 숫자 반올림 기준 : 소수점 자릿 수 지정(필수 아님) 지정하지 않을 경우 소수점 첫번째 자리를 사용한다. 반올림 기준에 -1을 붙일 경우 1의 자리를 반올림한다. ✅ ceiling 소수점 이하를 무조건 올리는 역할...
문제 제출 🚨 error YEAR(ym) vs DATE_FORMAT(ym, '%Y') 은 정수(INT) 타입을 반환 은 문자열(VARCHAR) 타입을 반환 → GROUP BY에서 에러날 가능성 있음 → ONLYFULLGROUP_BY 모드가 활성화된 경우, 명확한 데이터 타입 일치가 필요함.
문제 제출 🚨 error > 🔥 에러 원인: ONLYFULLGROUP_BY 모드와 GROUP BY 조건 불일치 → b.fish_name이 GROUP BY에 포함되지 않아서 발생한 문제 → SELECT 문에 있는 컬럼은 GROUP BY에 포함된 컬럼이어야 함
문제 제출 📌 새로 배운 내용 ✅ CONCAT() 나열된 파라미터들을 모두 붙여줄 수 있다. > 💡 CONCAT 함수는 파라미터가 문자 자료형이 아니어도 숫자, 날짜 등 문자로 변환될 수 있는 자료형이면 자동으로 변환되며 에러 발생하지 않는다. → max(length)의 결과가 정수로 반환되는 경우, 정수의 경우에는 소수점이 표시되지 않음. (5...
문제 제출 📌 복습 내용 ✅ in 기본적인 in 연산 IN은 일반적으로 “값이 목록에 포함되어 있는지”를 체크할 때 사용 departmet가 HR, Sales, Engineering 중 일치하는 것이 있는지 확인 > ❓ 의 의미? → 'python'이 skill1, skill2, skill_3 중 어느 하나와 일치하는지 확인하는 것 하나라도 일치...
문제 제출 또 다른 답 함수는 해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수이므로, from 절에서 서브쿼리로 따로 테이블 생성할 필요 없이, SELECT문에서 바로 사용할 수 있다.
문제 제출 error 위의 코드를 제출하면 월이 01 형식이 아닌 1 형식으로 나오지는 않지만, 정렬시 월별 정렬이 되지 않는다. 형식은 문자열로 출력되기 때문에 제대로 정렬이 안된다고 한다. 따라서 정수로 출력되는 형식을 사용해야 한다.
문제 제출 또 다른 답 on 조건을 명확히 작성 를 쓰면 시간 부분을 제거하고 형식으로 변환됨.
문제 제출 📌 새로 배운 내용 ✅ DATEDIFF > 두 날짜 간의 차이 → 날짜1 - 날짜2 ✅ TIMESTAMPDIFF > ** → 날짜2 - 날짜1 단위 SECOND : 초 MINUTE : 분 HOUR : 시 DAY : 일 ...
문제 제출 group by 하고 같은 carid 중 '대여중'이 있는 carid이면 '대여중'이 출력되도록 하려고 했다. 를 사용했다. 📌 새로 배운 내용 ✅ MAX 그룹 내에서 가장 우선순위가 높은 값을 선택한다. → 그룹 내에서 가장 큰(사전순으로 뒤에 오는
문제 제출 🚨 error a.views는 WHERE 절 바깥의 메인 쿼리에 속하는 컬럼 서브쿼리에서는 a라는 테이블을 인식할 수 없음. → 따라서 SELECT MAX(a.views) 부분에서 a.views가 정의되지 않았다는 오류가 발생. 또 다른 답 where 절에서 최대 조회수를 갖는 board_id 구하는 방법
문제 제출 🚨 error 이 부분때문에 계속 에러가 났다. 예를 들어 이 예제 데이터에서, 로 작성하면 1000\8 인지 2000\8인지 알 수 없다. 따라서 처럼 SUM을 전체에 묶어줘야 한다.
문제 제출 먼저 milk, yogurt 행들만 필터링하고, 장바구니 id로 group by 한 후 을 통해 중복 없을 때 2개 이상의 name을 가진(milk, yogurt) 장바구니 id를 선택한다. 또 다른 답 where 절에서 안 되는 이유 하나의 NAME에는 ‘Yogurt’나 ‘Milk’ 중 하나만 있을 수 있기 때문 하지만 서브쿼리를 사용...
문제 제출 📌 새로 배운 내용 ✅ 날짜의 일자 단위로 그룹화 DAY, MONTH, YEAR 등을 사용하여 컬럼의 날짜 특정 부분을 추출해 그룹화 예시 참고 - 특정 형식(예: 년-월 또는 년-일)으로 그룹화 DATE_FORMAT() 함수 사용 월별로 개수 센다. 🚨 error 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 것이기 때문에...
문제 제출 🚨 error 테스트에서는 성공인데, 제출하면 오답으로 떴다. 정렬이 문제였는데, 문자열 기준으로 정렬이 되어 숫자 정렬로 바꾸어주어야 했다. 문자 -> 숫자 정렬로 바꾸는데 2가지 방법이 있다. CAST() SIGNED vs UNSIGNED SIGNED(부호 있는 정수): 양수와 음수를 모두 저장할 수 있음. UNSIG...
문제 10cm 이하 물고기들을 10cm로 취급하는 부분에서 애먹었던 문제이다. 제출 서브쿼리를 사용해 10cm 이하 물고기들을 10cm로 만든 테이블을 생성해 풀었다. 🚨 error 이 코드는 select문에서 ifnull을 사용해 null값일 경우(10cm 이하일 경우), 10으로 처리되도록 하는 코드이다. 60% 정답이었던 코드이다. 문제는 h...
문제 제출 left join 해서 null 값인 row 찾기 또 다른 답 굳이 서브쿼리로 parentitemid만 찾을 필요가 없었다.
문제 제출 또 다른 답 굳이 join에 서브쿼리 쓸 필요가 없었다.
문제 제출 📌 새로 배운 내용 ✅ WITH 절 > SQL에서 임시 테이블(CTE, Common Table Expression)을 만드는 방법 복잡한 쿼리를 더 읽기 쉽게 만들고, 같은 서브쿼리를 여러 번 사용해야 할 때 코드 반복을 줄여준다. from 절에서 사용한다. WITH절을 확장하면 재귀 쿼리(계층 구조 탐색)도 가능하다. (반복문 기능) ...
문제 제출 또 다른 답
문제 제출 🚨 error 계속 이렇게 써서 에러가 났었다. > 실패 (1370, "execute command denied to user 'test'@'%' for routine 'a.YEAR'") 수정 → 함수를 참조할 때는, 함수에 대한 별칭을 서브쿼리에서 직접 지정한 후, 그 값을 참조하는 방식을 써야 동작한다.
문제 제출 이 연산의 결과가 0이 아닌지, 0인지에 따라 skill_code가 ‘python’을 포함하는지 여부를 알 수 있습니다. > - python의 code 값이 4로 가정(0100) skill_code 값이 5일 경우(0101) 5 & 4 → 0101 & 0100 → 0100 → 결과: 4 (0이 아니므로, python을 포함하는 스킬을 보...
문제 제출 📌 새로 배운 내용 ✅ ROW_NUMBER() OVER (ORDER BY 컬럼) > 컬럼 기준 오름차순/내림차순으로 번호를 매긴다. 처음에 크기 내림차순 정렬에 맞춰 순번을 부여하고, 순번에 따른 비율 별로 분류 이름을 부여하려고 했다. 그에 따라 기준에 맞춰 순번 부여을 부여하는 함수인 를 사용했다. > +) row_number() ...
문제 제출 🚨 error front는 CTE에서 생성된 임시 테이블 같은 존재라서, 👉 FROM front처럼 테이블로 사용해야 한다.
문제 제출 구매를 여러번 한 user_id가 존재하므로 distinct를 사용해 중복 제외시켜 조회해야 한다. 📌 알게된 점 SELECT 문에도 서브쿼리 작성 가능하다. 또 다른 답 join을 사용하지 않고 where에서 조건에 부합하는(2021년에 가입한) user_id를 필터링했다.
문제 제출 📌 알게된 것 case when 에서도 and 를 사용해 조건을 여러개 달 수 있다. 또 다른 답 select 보다 where 이 먼저 실행되기 때문에 은 에러가 뜨고, having 은 select 보다 나중에 실행되므로 이렇게 써도 작동은 한다. 하지만 비효율적이다. ❌ 비효율적인 이유: HAVING은 집계 함수(Aggregate ...
문제 제출 🚨 error 1,3번 형질을 보유한 개체를 구하라고 해서 단순하게 이렇게 썼다. 그런데 예시를 보니, 2진수 형태였다. 1번 형질 → 1 (0) 2번 형질 → 10 (2) 3번 형질 → 100 (4) 4번 형질 → 1000 (8) 따라서 3번 형질은 4이므로 이렇게 써줘야 한다.
문제 제출 또 다른 답 case when 으로 c.discount_rate 가 null일 때 처리를 Ifnull로 간단하게 표현했다.
문제 제출 🚨 error 문제의 이해를 잘못했다. 조건을 만족하는 대여 금액(대여한 날짜 * 대여 금액)인 줄 알았는데 30일동안의 대여 금액이었다. > 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요 이 문장 때문에 그런 것 같...
문제 제출 📌 새로 배운 내용 ✅ 재귀 CTE > WITH RECURSIVE 반복해서(재귀적으로) 계산하는 SQL문 1️⃣ 기본 쿼리 : 한번 실행됨 2️⃣ 재귀 쿼리 : 이전 결과를 사용해서 반복 실행됨 문제에서의 재귀 CTE문 1️⃣ 기본 쿼리 parent_id가 null 값인 개체를 generation 1 (1세대)로 정의한 임시 테이블 G...
문제 제출 📌 새로 배운 내용 ✅ UNION, UNION ALL > 두 개 이상의 쿼리 결과를 하나로 합칠 때 사용하는 명령어 중복을 제거하는지 여부에서 차이점 | 연산자 | 중복 제거 | 속도 | 사용 예시 | | :-: | :-: | :-: | :-: | | UNION | 중복 제거 O | 느림 | 중복된 데이터를 제외하고 결과를 합칠 때 | |...
문제 제출 📌 새로 배운 내용 ✅ 집계함수(분산, 표준편차) 특정 열의 모분산 구한다. 특정 열의 표본 분산 구한다. 특정 열의 표준 편차 구한다.
문제 제출 📌 새로 배운 내용 ✅ UPPER(), LOWER() > 문자를 대문자로 변경 > 문자를 소문자로 변경 🚨 error 처음에 LEFT() 함수를 사용하여 앞 3글자를 자르려고 했으나, 에러가 떴다. solvesql은 oracle 환경이라 LEFT() 함수를 적용할 수 없다고 한다.
문제 제출 🚨 error 판매자가 판매한 주문 건수를 으로 조회했다. 하지만 order_id는 이런 형태이고, 중복 없는 order_id의 개수를 '세어야' 하기 때문에 으로 조회해야 한다.
문제 제출 또 다른 답 where 절에서 서브쿼리로 조건 적용하면 더 쉽게 풀이 가능하다.
문제 제출 📌 새로 배운 내용 ✅ 여러 컬럼에서 DISTINCT (category, name) 쌍이 동일한 경우에만 중복 제거 → category가 같아도 name이 다르면 별도로 출력됨 category 컬럼만 고려해서 중복 제외하는 것 아님!
문제 제출 📌 새로 배운 내용 ✅ NOT LIKE 특정 문자가 포함되어 있는지 조회 • _ → 임의의 한 글자를 의미 • % → 임의의 여러 글자를 의미 a로 시작하는 데이터 a로 끝나는 데이터 a가 포함되는 데이터 a 앞에 임의의 한 글자가 포함된 데이터 특정 문자를 포함하지 않는 데이터 조회 ✅ INSTR() 문자열 내에서 특정 부...
문제 제출 📌 새로 배운 내용 ✅ lead() 현재 행의 다음 행을 가져올 수 있는 윈도우 함수
문제 제출 📌 복습 ✅ REGEXP SQL에서 정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을 걸어 데이터를 검색할 수 있다. matching Numbers Limit String Group  COUNT(\*)는 정수(INT) 값을 반환 따라서 정수 / 정수는 소수점이 버려지고 0 또는 1이 나올 수 있다. 따라서 에 실수 1.0을 곱해주면 실수 / 정수 여서 자동 실수로 계산된다. ❎ 실수 뒤에 곱하기 실수를 뒤에 곱해주면 안된다. 정수 / 정수 계산되어 소수 부분 잘리고 정수부분만 남은...
문제 제출 📌 새로 배운 내용 ✅ count(case when ) 으로 년도 조건을 걸어 해당 년도일 경우 1, 아닐 경우 null이 출력되도록 한다. 을 count()로 감싸 1일 경우만 카운트되도록 하여, 해당 년도의 값들만 카운트한 컬럼을 생성한다. 🚨 error null이 아닌 0으로 작성했더니 밑과 같이 다 동일한 값으로 카운트되었다....
문제 제출 📌 새로 배운 내용 ✅ median() 은 컬럼의 중앙값을 구하는 함수이다. ✅ order by 특정 순서대로 mysql에서는 field 함수를 사용할 수 있지만, solvesql은 sqlite 기반이기 때문에 case when 으로 특정 순서대로 정렬했다.
문제 제출 #1. 1번째 문자부터 공백(' ') 전까지의 자릿수 구한다 #2. address 컬럼에서 공백(' ') 다음 문자부터 다음 공백(' ') 전까지의 문자의 자릿수 구한다. address 컬럼에서 첫 공백 다음 문자부터 끝까지 가져오고( ), 다음 공백까지의 자리수 -1 한다. 📌 새로 배운 내용 ✅ INSTR() 문자열 안에서 특정 문자의...
문제 제출 📌 새로 배운 내용 ✅ strftime('%w') > : day of week 0-6 with Sunday==0 또 다른 답 로 하면 > : day of week 1-7 with Monday==1 이므로 order by 절에서 따로 순서를 정해주지 않아도 된다.
문제 제출 조건에 부합하면 1, 부합하지 않으면 0을 반환해 sum으로 카운트 셀 수 있다. 🚨 error case when 안에 count() 함수를 쓸 수 없다. success에 몰빵되어 카운트 되었는데, 👉 COUNT(\*)는 그룹 단위에서 한 번만 실행되기 때문에, 첫 번째로 조건을 만족하는 곳에서 그룹 전체 개수를 반환 👉 첫 번째 행...
문제 제출 quantity가 취소 주문일 경우 음수인데, 그걸 모르고 CTE로 취소주문일 경우 concat()으로 '-'을 붙이고, 둘을 더하려고 했는데, quantity가 음수로 나와있는걸 알고 풀던 CTE 방식으로 계속 풀다보니 이렇게 풀게 되었다. 또 다른 답 CTE를 사용하지 않고, select 문에서 sum을 이용해 주문 금액, 취소 주문 ...
문제 제출 2개 이상의 국적으로 메달을 수상한 기록이 있어야 한다고 해서, teams 테이블도 join했다. 그런데 나라 이름은 필요하지 않고, records 테이블에 선수의 국적 id가 나와있으므로 따로 join하지 않아도 된다. 또 다른 답 teams 테이블 join 하지 않았을 때의 코드이다.
문제 길이가 가장 길고 짧은 city의 이름과 길이를 출력하시오. 가장 길거나 짧은 city가 한개 이상일 경우, 알파벳 순으로 가장 첫번째로 오는 city를 선택하시오. 🟡 쿼리를 두개 작성해도 된다. 제출 🚨 error 어려운 문제는 아닌데, 단일 쿼리로 작성하려다 보니 시간이 꽤 걸렸다. 이런식으로 풀려고 했는데, 가장 짧은 길
문제 제출 주의할 점 주문 번호가 중복일 경우도 있기 때문에 중복 제거를 해줘야한다. 를 괄호로 감싸도 중복 제거가 된다.
문제 제출 🚨 error edges 테이블에서 useraid로 group by 하여 userbid 카운트 모든 user 출력되는 것이 아닌 useraid에 있는 user들만 출력됨 → edges 테이블이 아닌 users 테이블에서 user 전부 불러와야 함 users 테이블에서 user 전부 불러온 후 useraid로 group by 하여 user...
문제 제출 📌 복습 ✅ substr • start_position: 시작 위치 (1부터 시작, 음수이면 뒤에서부터) • length: 몇 글자를 가져올지 (음수이면 일부 DBMS에서 오류) 🚨 error substr(name,-1,-3) -1 ~ -3 까지 문자를 가져올거라고 생각했는데, 길이에 음수를 넣을 수 없다고 한다. 오른쪽 방향으로 문자...
문제 제출 평론가 평점, 평론가 수 + 사용자 평점, 사용자 수 둘 다 누락 평론가 평점, 평론가 수만 누락 사용자 평점, 사용자 수만 누락 이렇게 3개로 나눌 수 있다. 1번만 해결하는 코드(위)를 짜고 제출을 눌렀는데, 오류가 밑과 같이 떴다. 제출한 코드의 1번째 레코드의 1번째 컬럼의 값은 21이 아닌데 왜 저렇게 뜬건지 모르겠다.. 결론...
문제 세 변의 길이를 이용하여 삼각형의 타입을 나타내시오. Equilateral: 세 변 모두 같음 Isosceles: 두 변 같음 Scalene: 세 변 모두 다름 Not A Triangle: 삼각형이 아님 삼각형의 조건 중 하나 한 변이 남은 두 변의 길이의 합보다 작아서는 안된다. 작을 경우 → Not A triangle 제출 💁♀️ 더 ...
문제 제출 📝복습 ✅ 랭킹 윈도우 함수 RANK() 순위를 매길 때 사용하는 윈도우 함수 정렬 기준에 따라 순위를 매기고, 동점일 경우 같은 순위를 부여하지만, 그 다음 순위는 건너뜀 • PARTITION BY: 순위를 나누는 그룹 컬럼 설정 (선택사항) • ORDER BY: 순위를 결정하는 기준 예시 day 컬럼별로 total_bill 컬럼 내림차...
문제 제출 📌 새로 배운 내용 ✅ SUM() (윈도우 함수) 누적합(누계) 을 계산하거나 특정 구간의 합계를 구할 때 쓰는 강력한 함수 일반적인 SUM() 집계 함수랑 달리, 윈도우 함수는 행 단위로 작동해서 각 행마다 결과를 보여줌 • PARTITION BY: 그룹화할 열을 지정 (예: 이름별, 부서별 등) • ORDER BY: 누적할 순서를 정함...
문제 정답 🚨 error ID가 3820인 사용자를 포함해 세 명의 사용자가 친구 관계인 경우를 모두 출력하는 쿼리를 작성해야 한다. useraid, userbid, usercid 가 모두 친구 관계이어야 하는데, 위 코드는 3명 중 2명만 친구 관계여도 출력하는 쿼리문이다. 따라서 정답 쿼리에는 useraid, usercid 도 친구 관계임을 확인...
문제 정답 pivot table 행에 있던 값을 열로 바꾸는 방식 CTE 테이블에서 row_number() 윈도우 함수를 이용해 occupation(직업)끼리 이름을 알파벳 오름차순으로 순번을 매긴 컬럼을 생성한다. group by rn 으로 같은 순번끼리 (rn=1끼리, rn=2끼리…) 그룹을 묶는다. rn 별로 case when 으로 occupa...
문제 정답 p값이 null 인 경우 root n 컬럼의 데이터 중 p 컬럼에 같은 데이터가 있는 경우 Inner 나머지 Leaf (n 컬럼의 데이터 중 p 컬럼에 같은 데이터가 없는 경우, p가 null 값이 아닌 경우) 또 다른 답 은 null 값이 있을 경우 연산이 불가능하기 때문에, 에서 null값을 제외시켜야 한다. p값이 null 인 경...
문제 정답 📌 새로 배운 내용 ✅ replace() 위 문제에서는 0을 제거하기 위해 사용했다. salary 컬럼 데이터에서 0을 제거했다.
문제 회사 코드, 설립자 이름, 리드 매니저 총 수, 시니어 매니저 총 수, 관리자 총 수, 그리고 직원 총 수를 출력하는 쿼리를 작성하세요. 회사 코드의 오름차순으로 정렬하세요 . 정답 🚨 error employee 테이블에 companycode, founder, leadmanagercode, seniormanagercode, managercod...
문제 정답 🚨 error 이 코드에서 계속 에러가 났다. 정답 컬럼 수는 17개인데 16개의 컬럼만 출력되었다. 문제는 19년도 10월에 대여/반납하거나 18년도 10월에 대여/반납한 경우가 없을 경우, null로 처리되기 때문에, 이 코드에서 rentsum19 이 값이 있더라도, returnsum19 이 값이 없어 null 값이면, 합했을 때 ...
문제 정답 🚨 error 첫번째 문제 SELECT avg(...) OVER (PARTITION BY species) 그 자체를 컬럼으로 쓰고, 빼기 계산을 할 때 현재 행 기준으로 바로 빼야 한다. 서브쿼리로 SELECT avg(…) FROM penguins 쓰는 건 틀린 방법이다. ? 다시 수정하기 두번째 문제 그룹바이 cte 안에 쓰면 그룹...
문제 lat_n 컬럼의 중앙값을 구하는 문제이다. 제출 📌 복습 ✅ row_number() > - row_number() over(PARTITION BY 컬럼 order by 정렬할 컬럼) PARTITION BY 컬럼 별로 나눠서 over(order by 정렬할 컬럼) 기준 순서대로 번호 부여 ✅ percent_rank() > - percent_r...
이름, 등급, 점수 출력1~7 등급은 이름 NULL로 표기등급 desc, 등급 같을 경우 이름 asc, 1~7등급 여러명이면 점수 asc조인의 조건👉 학생의 점수가 해당 등급의 점수 구간 안에 들어가면 그 학생과 그 등급을 매칭