역시나 이번에도 for문을 ㅋㅋㅋㅋㅋ
매서드 함수를 모르면 for문을 못벗어날 것 같다.
웃긴 코드를 보았다.
.substring이라는 함수가 있구나
.substring(0,n)을 쓰면 0번째부터 n번째 전까지 글자를 잘라주나보다.
천재적인 발상!
허락받고 링크 퍼왔다.
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE NOT INTAKE_CONDITION = "Aged"
ORDER BY ANIMAL_ID;
INTAKE_CONDITION이 Aged가 아닌 자료를 모두 조회할 때에는
WHERE NOT 이라고 쓰면 된다는 것을 알았다!
SELECT NAME FROM ANIMAL_INS
WHERE CDATETIME = (SELECT min(DATETIME) FROM ANIMAL_INS);
MAX 도 동일하게 쓰면 되고 아래처럼 생략해서 쓸수없다.
WHERE CDATETIME = min(DATETIME) ;
DISTINCT를 저렇게 넣어서 NAME 컬럼의 중복값을 제거한다.
count 가 알아서 NULL 값은 안센다.
저 둘을 안써도 Cat이 나오는데 저 둘을 써야 답이 됨.
처음에 테이블이 이전과 동일 한 줄 알고 컬럼 자리에 로우를 써서 에러가 계속 났다. 컬럼자리에는 컬럼만 쓰자..
count 로 두 종류 이상의 로우를 샐 때에는 어떤 컬럼 기준으로 그룹지어 count 해야할지 써줘야 한다. 그 역할을 하는 것이 바로 GROUP BY 이다.
ORDER BY를 써주면 문자의 경우 알파뱃순으로 정렬해준다. Dog 보다 Cat이 알파뱃 상 먼저이기 때문에 Cat이 먼저 나오게 하라는 조건은 ORDER BY 로 정렬하라는 걸 돌려 말한 것이었던 것이었다...
이거는 이번 DB 미니 프로젝트때 내 쿼리문 내내 등장한건데
WHERE 조건과 같이 쓰려니 헷갈렸다.
SELECT HOUR(DATETIME), COUNT(DATETIME) FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) < 20
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME);
HOUR(2020-12-12 21:35:59)를 21로 추출해줌