문제 풀이 📌 SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH DATE_FORMAT : DATE형식 정해주기 AS DATE_OF_BIRTH : 열이름은 DATE_OF_BIRTH로 지정 ➕ DATE_FORMAT 참고 링크 📌 FROM MEMBER_PROFILE MEMBER_PROFILE 테이블에서 📌 WHERE TLNO IS NOT NULL AND GENDER = 'W' AND MONTH(DATE_OF_BIRTH)=3 TLNO IS NOT NULL : TLNO 은 NULL이 아닌 것만 MONTH(DATE_OF_BIRTH)=3 : 3월 인것만 📌 ORDER BY MEMBER_ID; MEM..
프로그래머스
문제 풀이 📌 SELECT TRUNCATE(PRICE, -4) AS PRICE_GROUP, COUNT(PRODUCT_ID) AS PRODUCTS PRICE에서 -4(4자리까지는 모두 0)으로 값을 만든다. 이 값의 열의 이름은 PRICE_GROUP이다. #1 PRODUCT_ID의 개수를 센다. 이 값의 열의 이름은 PRODUCTS이다. TRUNCATE(값, 자릿수) '자릿수'까지 숫자를 아래로 버린다(0이 된다). 반드시 버릴 자릿수를 명시해줘야 한다. TRUNCATE(1234.5678, 3) // 1234.567 TRUNCATE(1234.5678, 1) // 1234.5 TRUNCATE(1234.5678, -1) // 1230 TRUNCATE(1234.5678, -3) // 1000 TRUNCATE(1..
문제 풀이 📌 SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) INGREDIENT_TYPE와 SUM(TOTAL_ORDER)를 보겠다. 📌 FROM ICECREAM_INFO AS I ICECREAM_INFO 을 기준으로 ICECREAM_INFO테이블을 I라고 줄여 말하겠다. 📌 JOIN FIRST_HALF AS F ON F.FLAVOR = I.FLAVOR FIRST_HALF테이블과 합치겠다. 이것은 F로 줄여 말하겠다. F테이블의 FLAVOR와 I테이블의 FLAVOR을 기준으로 합치겠다. 📌 GROUP BY INGREDIENT_TYPE SUM(TOTAL_ORDER)를 GROUP BY INGREDIENT_TYPE 기준으로 합계를 내겠다. 정답 SELECT INGREDIENT_TYPE..
문제 풀이 📌 SELECT CAR_TYPE, COUNT(*) AS CARS CAR_TYPE, 결과값 개수의 별칭은 CARS 📌 FROM CAR_RENTAL_COMPANY_CAR CAR_RENTAL_COMPANY_CAR 테이블에서 📌 WHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트% LIKE '%옵션%' 옵션이라는 말이 들어가면 해당. 옵션 중 하나 이상만 포함하면 되기 때문에 OR. ※ WHERE OPTIONS IN ('통풍시트', '열선시트', '가죽시트')가 오답인 이유 위 코드는 옵션으로 통풍시트만 있거나, 열선시트만 있거나, 가죽시트만 있어야 그 결과값이 나옵니다. 즉, 차량 옵션으로 '통풍시트', '네비게이션..
문제 풀이 📌 SELECT PRODUCT_CODE, SUM(P.PRICE * O.SALES_AMOUNT) AS SALES PRODUCT테이블의 PRICE(가격)와 OFFLINE_SALE테이블의 SALES_AMOUNT(판매량)을 곱한 것을 열 이름 SALES로 만든다. 📌 FROM PRODUCT AS P PRODUCT 는 별칭 P라고 부른다. 📌 INNER JOIN OFFLINE_SALE AS O ON O.PRODUCT_ID = P.PRODUCT_ID PRODUCT_ID을 기준으로 OFFLINE_SALE테이블과 PRODUCT 테이블의 공집합 INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식. 🟢🟡🟠 JOIN https://hongong.hanbit.co.kr/sql-%EA%B8%B0%..
문제 풀이 📌 #1 SELECT DATE_FORMAT(DATETIME, '%H') AS HOUR, COUNT(ANIMAL_ID) AS COUNT '%H' : 24시간 형식으로 표시 COUNT(ANIMAL_ID) : ANIMAL_ID의 개수를 셈. 이전 다른 풀이 참고( DATE_FORMAT으로 형식 ) : https://sesam-dev.tistory.com/55 📌#2 FROM ANIMAL_OUTS ANIMAL_OUTS 테이블에서 📌#3 WHERE DATE_FORMAT(DATETIME, '%H') BETWEEN 09 AND 19 DATE_FORMAT(DATETIME, '%H') : DATETIME를 24시간 형식으로 표기 BETWEEN 09 AND 19 : DATETIME의 시간은 09에서 19사이 📌..
문제 풀이 📌 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..