문제 풀이 📌 CASE → 조건문 WHEN SEX_UPON_INTAKE = 'Neutered Male' OR SEX_UPON_INTAKE = 'Spayed Female' → WHEN 조건에 해당되면, THEN 'O' → TEHN 'O' 반환 ELSE 'X' → 그렇지 않으면 'X' 반환 END AS '중성화' → END : CASE문 종료, AS: 결과값의 열 이름 ✔ CASE문 1) WHEN - THEN은 항상 같이 사용하기 2) WHEN - THEN 개수 상관 없음 3) ELSE가 없고, WHEN - THEN 조건 충족하지 않으면 NULL 값 반환 4) 조건문 마지막에 END 꼭 써주기 CASE WHEN 조건1 THEN 조건1 충족할 때 반환되는 값 WHEN 조건2 THEN 조건2 충족할 때 반환되는..
알고리즘
문제 풀이 📌 ORDER BY PRICE DESC ORDER BY PRICE : PRICE로 순서정렬 DESC : 내림차순 📌 LIMIT 1 결과값에서 첫 줄만 출력 SELECT * FROM FOOD_PRODUCT ORDER BY PRICE DESC LIMIT 1;
문제 시각(시-분-초)을 제외한 날짜(년-월-일)만 보여주세요. 풀이 잘못된 풀이 📌 DATE(DATETIME) AS '날짜' DATETIME에는 이미 시각이 포함되어 있는 값이라서 DATE를 사용하면 날짜가 '2018-07-22 00:00:00'처럼 시각을 제외하는 것이 아닌 0으로 표시한 값이 나온다. SELECT ANIMAL_ID, NAME, DATE(DATETIME) AS '날짜' FROM ANIMAL_INS ORDER BY ANIMAL_ID 잘된 풀이 📌 DATE_FORMAT(DATETIME, '%Y-%m-%d') DATE_FORMAT으로 형식을 정해줘야 한다. SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜' FROM ANIM..
문제 내 풀이 📌 CASE 📌 WHEN NAME IS NULL THEN 'No name' NAME이 NULL일 경우, 'No name'으로 표시 📌 ELSE NAME 그렇지 않을 경우, NAME과 SEX_UPON_INTAKE 표시 📌 END AS NAME, SEX_UPON_INTAKE NAME을 "NAME"이라는 별칭으로 지정, 나온 NAME값과 SEX_UPON_INTAKE 조회 SELECT ANIMAL_TYPE, CASE WHEN NAME IS NULL THEN 'No name' ELSE NAME END AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS 다른 사람 풀이 📌 IFNULL(NAME, 'No name') NAME이 NULL일 경우, 'No name'으로 출력 SELEC..
문제 풀이 대소문자 구별 하지 않는다. → UPPDER(NAME) 모두 대문자로 바꾸기 EL들어가는거 찾기 → '%EL%' SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE UPPER(NAME) LIKE '%EL%' AND ANIMAL_TYPE = 'DOG' ORDER BY NAME;
문제 풀이 DISTNCT : 결과 집합에서 중복된 값을 제거하여 유일한 값만을 반환하는 역할 IS NOT NULL : NULL값 제외 SELECT COUNT(DISTINCT NAME) AS 'COUNT' FROM ANIMAL_INS WHERE NAME IS NOT NULL;
문제 풀이 SELECT NAME, COUNT(NAME) AS 'COUNT' FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >1 ORDER BY NAME 세부 풀이 SELECT NAME, COUNT(NAME) AS 'COUNT' 이름과 이름이 나타나는 횟수를 보겠다. COUNT(NAME)의 이름은 COUNT다. FROM ANIMAL_INS ' ANIMAL_INS' 테이블에서 GROUP BY NAME 이름별로 그룹화 HAVING COUNT(NAME) >1 GROUP을 사용했때는 조건절이 WHERE이 아닌 HAVING.. 문제에서 이름이 없는 동물을 제외하라고 했기 때문에 조건절 개수가 1 이상으로 설정.. ORDER BY NAME 이름별로 결과값 정렬 보완점 mysq..
문제 내 풀이 sort()는 void타입 반환으로 변수에 값을 저장하는 것이 아니다. # 오답 import java.util.Arrays; class Solution { public int solution(int[] sides) { int answer = 2; answer = Arrays.sort(sides); // 오답 if(sides[0]+sides[1]>sides[2]){ return answer = 1; } return answer; } } # 정답 import java.util.Arrays; class Solution { public int solution(int[] sides) { int answer = 2; Arrays.sort(sides); if(sides[0]+sides[1]>sides[..
문제 내 풀이 StringBuilder사용 class Solution { public String solution(String my_string) { StringBuilder reversed = new StringBuilder(my_string); String answer = reversed.reverse().toString(); return answer; } } StringBuilder 자바에서 String 객체는 변경 불가능. 따라서 a문자열과 b 문자열을 연결하여(+) c 문자열을 만들고, a와 b문자열은 가비지 컬렉터로 들어간다. → 비효율적이므로 StringBuilder 사용 // 생성자: 문자열 바로 넣기 가능 StringBuilder sb = new StirngBuilder("aaa") //..
문제 내 풀이 #오답 값은 맞게 나왔으나, 런타임 에러 발생 class Solution { public int[] solution(int[] numbers, int num1, int num2) { int[] answer = new int[num2]; int j = 0; for(int i=num1; i 범위 지정을 안해줘서 num2 - num1 +1는 범위 지정해주는 규칙? 임 class Solution { public int[] solution(int[] numbers, int num1, int num2) { int[] answer = new int[num2 - num1 +1]; int j = 0; for(int i=num1; i