목록PCSQL (90)
노아
Question 각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)를 출력하는 SQL문을 작성해주세요. 이때 결과는 세대에 대해 오름차순 정렬해주세요. 단, 모든 세대에는 자식이 없는 개체가 적어도 1개체는 존재합니다. Pseudocode 의사코드CTE 정의 (재귀 쿼리):id와 parent_id가 존재하는 대장균 데이터를 기반으로 트리 구조를 재귀적으로 탐색합니다.parent_id가 NULL인 항목을 첫 번째 세대(gen = 1)로 시작하고, 재귀적으로 부모-자식 관계를 따라가며 gen 값을 1씩 증가시킵니다.메인 쿼리:cte에서 각 개체가 마지막 세대인지 확인하기 위해 자기 자신(a)을 기준으로 자식(b)이 없는 경우를 확인합니다.즉, 자식이 더 이상 없는 개체들만을 대상으로 ..
Question DEVELOPERS 테이블에서 GRADE별 개발자의 정보를 조회하려 합니다. GRADE는 다음과 같이 정해집니다.A : Front End 스킬과 Python 스킬을 함께 가지고 있는 개발자B : C# 스킬을 가진 개발자C : 그 외의 Front End 개발자GRADE가 존재하는 개발자의 GRADE, ID, EMAIL을 조회하는 SQL 문을 작성해 주세요.결과는 GRADE와 ID를 기준으로 오름차순 정렬해 주세요. Pseudocode 서브쿼리로 등급을 매기는 GRADE CTE(공통 테이블 표현식)를 정의:각 개발자(ID)의 SKILL_CODE를 비트 연산을 통해 여러 조건을 체크합니다.먼저, Python 기술을 가지고 있고, 동시에 Front End 기술을 가진 경우를 확인하여 이 개발자에..
Question 2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수(COUNT)를 출력하는 SQL 문을 작성해주세요. 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함합니다.Pseudocode 데이터 선택:ECOLI_DATA 테이블에서 모든 행을 선택합니다.조건 설정:GENOTYPE 열의 값이 2와 비트 AND 연산을 했을 때 2가 아닌지 확인합니다. => 2번 형질 보유X 확인GENOTYPE 열의 값이 5와 비트 AND 연산을 했을 때 0이 아닌지 확인합니다. => 1번 or 3번 형질 보유한 것 확인개수 세기:조건을 만족하는 행의 개수를 세어 COUNT라는 별칭으로 반환합니다. Code SELECT COUNT(*) COU..
Question 부모의 형질을 모두 보유한 대장균의 ID(ID), 대장균의 형질(GENOTYPE), 부모 대장균의 형질(PARENT_GENOTYPE)을 출력하는 SQL 문을 작성해주세요. 이때 결과는 ID에 대해 오름차순 정렬해주세요. Pseudocode 선택할 열 지정:ecoli_data 테이블의 id와 genotype을 b에서 가져옵니다.ecoli_data 테이블의 genotype을 a에서 가져와 parent_genotype이라는 별칭을 부여합니다.테이블 조인:ecoli_data 테이블을 두 번 사용하여, 하나는 부모(a), 다른 하나는 자식(b)으로 설정합니다.부모와 자식을 parent_id를 기준으로 조인합니다.조건 설정:a.genotype와 b.genotype의 비트 연산 결과가 a.geno..
Question USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요. 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요. Pseudocode 선택할 열 지정:SALES_DATE에서 연도와 월을 추출하여 YEAR 및 MONTH라는 별칭을 부여합니다.고유한 구매자 수 (DISTINCT USER_ID)를 세어 PURCHASED_USERS라는 별칭을 부여합니다.2021년에..
Question DEVELOPERS 테이블에서 Front End 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.결과는 ID를 기준으로 오름차순 정렬해 주세요.Pseudocode 메인 쿼리 선택:developers 테이블에서 id, email, first_name, last_name을 선택합니다.JOIN 조건:skillcodes 테이블과 조인합니다.조인 조건으로 skill_code와 CODE의 비트 AND 연산을 사용하여 두 값이 일치하는 경우를 찾습니다.필터링:CATEGORY가 'Front End'인 레코드만 선택합니다.중복 제거:DISTINCT를 사용하여 중복된 결과를 제거합니다.정렬:id를 기준으로 오름차순 정렬합..
Question CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. Pseudocode 서브..
Question CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요.Pseudocode 서브쿼리 a 생성:car_rental_company_rental_history 테이블에서 모든 컬럼을 선택합니다.DATEDIFF 함수를 사용하여 대여 기간을 계산합니다.대여 기간에 따라 ..