2025-04-06 My SQL

성현규·2025년 4월 5일
post-thumbnail

1. MySQL 문제풀이


1-1. 역순 정렬하기

  • ANIMAL_INS 테이블에서 name, datetime 열을 선택하고, animal_id 기준으로 역순 정렬한다.

📌 핵심 요약:

  • ORDER BY animal_id DESC 를 사용하여 역순 정렬한다.

✅ 예시 설명:

DESC는 내림차순, 즉 역순 정렬을 의미한다.

SELECT name, datetime 
FROM ANIMAL_INS 
ORDER BY animal_id DESC;

1-2. 아픈 동물 찾기

  • ANIMAL_INS 테이블에서 INTAKE_CONDITION이 "sick"인 동물들의 animal_idname을 조회한다.

📌 핵심 요약:

  • WHERE 조건으로 INTAKE_CONDITION = "sick" 을 사용하여 아픈 동물만 필터링한다.

✅ 예시 설명:

sick 상태의 동물만 선택하여 출력한다.

SELECT animal_id, name 
FROM ANIMAL_INS 
WHERE INTAKE_CONDITION = "sick";

1-3. 최솟값 구하기

  • ANIMAL_INS 테이블에서 datetime 열의 최솟값을 구한다.

📌 핵심 요약:

  • 집계 함수 MIN()을 사용한다.
  • AS 또는 별칭 없이 문자열로 열 이름을 "시간"으로 출력한다.

✅ 예시 설명:

MIN(datetime)을 사용하여 가장 이른 시간을 구한다.

SELECT MIN(datetime) "시간" 
FROM ANIMAL_INS;

1-4. 특정 형질을 가지는 대장균 찾기

  • ECOLI_DATA 테이블에서 특정 비트 조건을 만족하는 행의 개수를 센다.
  • 프로그래머스에서는 열 이름까지 정답으로 인정하므로 AS COUNT로 열 이름을 맞춘다.

📌 핵심 요약:

  • & 비트 연산자를 사용하여 유전자형(GENOTYPE) 조건을 확인한다.
  • GENOTYPE & 2 = 0: 두 번째 비트가 0인 경우
  • (GENOTYPE & 4 = 4 OR GENOTYPE & 1 = 1): 세 번째 비트가 1이거나 첫 번째 비트가 1인 경우
  • SQL 은 결과를 항상 숫자 데이터 타입, 즉 십진수로 반환한다.
  • 괄호를 사용하여 연산 순서를 명확히 할 수 있다.
  • & 비트 연산은 2진수끼리의 연산에서 값이 모두 1일경우 해당 자리를 1로 반환한다. (2의 제곱수는 어짜피 해당 자리만 1이니까 비교되는 수가 그 자리가 1인지 판단가능)

✅ 예시 설명:

비트 연산은 2진수 형태로 이루어지며, 특정 비트의 on/off 여부를 검사할 수 있다.

SELECT COUNT(ID) AS COUNT
FROM ECOLI_DATA
WHERE GENOTYPE & 2 = 0
  AND (GENOTYPE & 4 = 4 OR GENOTYPE & 1 = 1);
⚠️ 주의할 점:
  • 프로그래머스에서는 열 이름까지 맞춰야 정답으로 인정하므로 반드시 AS COUNT를 사용하여 열 이름을 지정해야 한다.
  • 비트 연산자는 괄호를 사용하여 연산 순서를 명확하게 해야 한다.

profile
학생

0개의 댓글