목록코드카타 (160)
susinlee 님의 블로그
[문제] 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. [단계별 풀이] 1. ANIMAL_TYPE 컬럼을 살펴보면 개와 고양이 뿐이므로 해당 컬럼을 GROUP BY 해준다2. COUNT 함수를 사용해서 ANIMAL_ID컬럼의 행의 수를 센다3. ANIMAL_TYPE 순으로 정렬한다[정답]SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID) AS countFROM ANIMAL_INSGROUP BY ANIMAL_TYPEORDER BY ANIMAL_TYPE
[문제] PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성해주세요. 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. 카테고리 컬럼을 SUBSTR() 함수를 이용해서 앞의 2자리만 가져온다2. 해당 컬럼을 기준으로 그룹화를 진행한다3. COUNT() 함수로 RPODUCT_ID의 행의 수를 센다4. 카테고리 코드를 기준으로 정렬한다[정답]SELECT SUBSTR(PRODUCT_CODE, 1, 2) AS CATEGORY, COUNT(PRODUCT_ID) AS PRODUCTSFROM PRODUCT GROUP BY CATEGORY # MYSQL에서는 GROUP BY에서 별칭 사용이 가능하다ORDER..
[문제] 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요. [단계별 풀이]1. 아이디와 이름을 선택한다2. SEX_UPON_INTAKE 컬럼이 'Neutered' 이거나 'Spayed' 인 행은 해당 컬럼의 값을 'Y' 로 아니면 'N'으로 변경하고 별칭을 중성화로 한 뒤 선택한다3. 아이디 순으로 정렬한다[정답]SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE..
[문제] USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. [단계별 풀이] 1. 테이블에서 2021년에 가입한 회원이면서 나이가 20세 이상 29세 이하인 회원을 필터링한다2. USER_ID를 COUNT() 함수로 행의 수를 세어준다[정답]SELECT COUNT(USER_ID) AS USERSFROM USER_INFOWHERE JOINED LIKE '2021%'AND AGE BETWEEN 20 AND 29
[문제] 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. [단계별 풀이] 1. 테이블에서 이름이 없는 행을 필터링한다2. 동물의 ID를 조회한다3. ID 순으로 정렬한다[정답]SELECT ANIMAL_IDFROM ANIMAL_INSWHERE NAME IS NULLORDER BY ANIMAL_ID
[문제] FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요. [단계별 풀이] 1. 서브쿼리를 이용해서 가장 비싼 가격의 행을 필터링한다2. 식품 ID, 식품 이름, 식품 코드, 식품 가격을 선택한다3. 서브쿼리를 이용해야 동일한 최대 값을 가진 모든 행을 반환 받을 수 있다[정답]SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICEFROM FOOD_PRODUCTWHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
[문제] DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. 테이블에서 진료과과 CS이거나 GS인 행을 필터링한다2. 의사의 이름, 의사ID, 진료과, 고용일자를 선택한다3. 고용일자의 날짜 포맷이 다르다면 맞춰준다4. 고용일자를 기준으로 내림차순 정렬하고, 이름 기준으로 오름차순 정렬한다[정답]SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMDFROM DOCT..
[문제] ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다. [단계별 풀이] 1. 테이블에서 동물의 아이디, 이름, 들어온 날짜를 선택한다2. 날짜를 YYYY-MM-DD 형태로 포맷팅한다3. 아이디 순으로 조회한다[정답]SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜FROM ANIMAL_INSORDER BY ANIMAL_ID