DATE_FORMAT함수를 아는지 확인하는 문제.

 

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID;

 

 

 

DATEDIFF함수 아는지 확인하는 문제.

첫번째 인자 - 두번째 인자를 반환.

 

SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O, ANIMAL_INS I WHERE O.ANIMAL_ID = I.ANIMAL_ID ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC LIMIT 2;

if문 사용할 수 있는지 확인하는 문제. true면 두번째 인자가 리턴, false면 세번째 인자가 리턴.

SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE LIKE 'Neutered%' OR SEX_UPON_INTAKE LIKE 'Spayed%', 'O', 'X') AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID;


LIKE프레디킷은 서브 스트링 패턴을 비교하는 비교연산자로 사용된다.

'%'는 문자가 있거나 없을 수 있다는 의미.

'_'는 문자 하나를 나타낸다.

 

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE='Dog' ORDER BY NAME;

 

LEFT 조인 사용

SELECT I.NAME, I.DATETIME FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID=O.ANIMAL_ID WHERE O.ANIMAL_ID IS NULL ORDER BY I.DATETIME ASC LIMIT 3;

 

이중 질의 사용

SELECT NAME, DATETIME FROM ANIMAL_INS WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS) ORDER BY DATETIME ASC LIMIT 3;

 

이중 쿼리로 푸는 방법

SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_INS);

 

LEFT 조인으로 푸는 방법

SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O LEFT JOIN ANIMAL_INS I ON (O.ANIMAL_ID = I.ANIMAL_ID) WHERE I.ANIMAL_ID IS NULL;

 

RIGHT 조인으로 풀기

SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O ON (O.ANIMAL_ID = I.ANIMAL_ID) WHERE I.ANIMAL_ID IS NULL;

 

 

GROUP BY를 써서 푸는 문제.

시간별로 묶고 시간 순으로 정렬하고 9시부터 19시까지로 설정.

 

SELECT HOUR(DATETIME), COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME)>=9 AND HOUR(DATETIME)<=19 GROUP BY HOUR(DATETIME) ORDER BY HOUR(DATETIME);

+ Recent posts