[SQL] WHEN, DATE SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = 'DONE' THEN '거래완료' WHEN STATUS = 'RESERVED' THEN '예약중' END AS STATUS FROM USED_GOODS_BOARD WHERE DATE(CREATED_DATE) = '2022-10-05' ORDER BY BOARD_ID DESC; ㅋㅌ 2023.09.20
[SQL] GROUP BY SELECT DATE_FORMAT(DATETIME, '%H') AS HOUR, COUNT(*) AS COUNT FROM ANIMAL_OUTS WHERE TIME(DATETIME) BETWEEN '09:00:00' AND '19:59:59' GROUP BY HOUR ORDER BY HOUR; //DATETIME에서 시간(HOUR)을 추출하고, 그를 기준으로 데이터를 그룹화 GROUP BY HOUR, 그룹별로 COUNT(*) 함수를 사용하여 그룹 내의 레코드 수를 세어 입양 건수를 계산 GROUP BY 구문은 데이터를 그룹화하는 역할. => 특정 기준으로 데이터를 묶어서 집계나 분석함 ㅋㅌ 2023.09.08
[SQL] DATE_FORMAT SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS "날짜" FROM ANIMAL_INS ORDER BY ANIMAL_ID; DATE_FORMAT 대문자 Y 대 소문자 y: %Y: 연도를 네 자리로 표시합니다 (예: 2023). %y: 연도를 두 자리로 축약하여 표시합니다 (예: 23). 대문자 M 대 소문자 m: %M: 월을 영어로 전체 이름으로 표시합니다 (예: January). %m: 월을 숫자로 두 자리로 표시합니다 (예: 01). 대문자 D 대 소문자 d: %D: 월 일 (일자)을 영어로 전체 이름으로 표시합니다 (예: 22nd). %d: 월 일 (일자)을 숫자로 두 자리로 표시합니다 (예: 22). ㅋㅌ 2023.09.06
[SQL] EXTRACT(YEAR FROM ***) SELECT B.CATEGORY, SUM(S.SALES) AS TOTAL_SALES FROM BOOK B JOIN BOOK_SALES S ON B.BOOK_ID = S.BOOK_ID WHERE EXTRACT(YEAR FROM S.SALES_DATE) = 2022 AND EXTRACT(MONTH FROM S.SALES_DATE) = 1 GROUP BY B.CATEGORY ORDER BY B.CATEGORY ASC; EXTRACT 함수는 일반적으로 날짜 및 시간 값에서 특정 구성 요소 (예: 연도, 월, 일)를 추출하는 데 사용되는 SQL 함수입니다. 여기서 EXTRACT 함수는 SALES_DATE 열에서 연도와 월을 추출하여 특정 날짜 범위를 필터링하는 데 사용됩니다. 문법 설명: EXTRACT(YEAR .. ㅋㅌ 2023.09.05
[SQL] DISTINCT 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다. SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL; DISTINCT DISTINCT는 SQL 쿼리에서 사용되는 키워드로, 결과 집합에서 중복된 값을 제거하는 역할 => 중복된 값을 하나로 압축하여 결과 집합에 포함시킨다. ID | Name ----|------- 1 | John 2 | Jane 3 | John 4 | Alice --------------------------------------- SELECT DISTINCT Name FROM YourTable; --------.. ㅋㅌ 2023.09.04
[SQL] DATEDIFF, CASE SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE, DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE, CASE WHEN DATEDIFF(END_DATE, START_DATE) >= 29 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE LIKE "2022-09-%" ORDER BY HISTORY_ID DESC; CASE 문은 주어진 조건에 따라 다른 값을 반환하는 조건부 표현식을 생성하는데 사용 CASE WHEN condition1 THEN result1 WH.. ㅋㅌ 2023.08.27
[SQL] 평균, 반올림 SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE='SUV'; 평균 구하기 : AVG() 반올림: ROUND(컬럼, 자릿수) 자릿수 -3 소숫점 아래 셋째 자리까지 표시 -2 소숫점 아래 둘째 자리까지 표시 -1 소숫점 아래 첫째 자리까지 표시 0 1의 자리까지 표시 1 10의 자리까지 표시 2 100의 자리까지 표시 3 1000의 자리까지 표시 ㅋㅌ 2023.08.25
[SQL] JOIN, DATE_FORMAT, 2022/10에 작성된 글 찾기 SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, DATE_FORMAT(R.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD B JOIN USED_GOODS_REPLY R ON B.BOARD_ID = R.BOARD_ID WHERE YEAR(R.CREATED_DATE) = 2022 AND MONTH(R.CREATED_DATE) = 10 ORDER BY R.CREATED_DATE ASC, B.TITLE ASC; ㅋㅌ 2023.08.23
[SQL] COUNT(*) SELECT COUNT(*) as USERS FROM USER_INFO WHERE JOINED BETWEEN '2021-01-01' AND '2021-12-31' AND AGE BETWEEN 20 AND 29; COUNT(*) SQL에서 특정 조건을 만족하는 행의 수를 구하는 함수 ㅋㅌ 2023.08.20