말랑한 하루
자주 쓰는 SQL 함수 본문
반응형
[ 값 ]
1. SUM()
2. AVG()
3. MIN()
4. MAX() : 최대 값 구하기
//programmers_level_1_최대값_구하기
SELECT MAX(DATETIME) AS "시간" FROM ANIMAL_INS;
5. COUNT()
6. DISTINCT : 중복 제거하기
//programmers_level_2_중복_제거하기
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS;
[ 문자열 ]
1. LIKE : 부분 문자열 일치 검색
//programmers_level_2_이름에_el이_들어가는_동물_찾기
WHERE NAME LIKE "%el" // el로 시작하는 문자열
WHERE NAME LIKE "el%" // el로 끝나는 문자열
WHERE NAME LIKE "%el%" // el을 포함하는 문자열
[ 시간 ]
1. () : DATETIME 으로부터 일부 데이터 추출 함수
YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND()
2. DATE_FORMAT() : DATE 형변환
// %Y:4자리 연도 / %y:2자리 연도 / %M:영어월 / %m:숫자월 / %D:영어일 / %d:숫자일
// %H:24시간 / %h:12시간 / %i / %s
SELECT ANIMAL_ID, NAME,
DATE_FORMAT(DATETIME, "%Y-%m-%d") AS "날짜"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
3. TIMESTAMPDIFF(DAY, A, B) : 두 날짜의 차이 구하기
//programmers_level_3_오랜_기간_보호한_동물(2)
[ 조건 ]
1. GROUP BY HAVING : 그룹별 집계된 결과 중 원하는 조건의 결과만 필터링 하는 경우 사용
// programmers_level_2_동명_동물_수_찾기
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS
WHERE NAME != ""
GROUP BY NAME
HAVING COUNT(NAME) > 1;
2. IF(condition, true-value, false-value) : 조건에 따라 true, false 값으로 바꾸기
//programmers_level_2_중성화_여부_파악하기
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE "%Neutered%"
|| SEX_UPON_INTAKE LIKE "%Spayed%", "O", "X") AS "중성화"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
3. IFNULL(column, value) : NULL인 경우 value로 값 바꾸기
//programmers_level_2_NULL_처리하기
SELECT ANIMAL_TYPE, IFNULL(NAME, "No name"), SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
[ 테이블 ]
1. A JOIN B ON condition : 조건에 맞는 B테이블의 값을 A테이블 값에 합친다.
//programmers_level_3_있었는데요_없었습니다
SELECT AOUT.ANIMAL_ID, AOUT.NAME
FROM ANIMAL_OUTS AOUT
JOIN ANIMAL_INS AIN
ON AOUT.ANIMAL_ID = AIN.ANIMAL_ID
WHERE AOUT.DATETIME < AIN.DATETIME
ORDER BY AIN.DATETIM
2. JOIN with GROUP BY HAVING
SELECT A.ID, A.NAME, A.HOST_ID
FROM PLACES A
JOIN (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID) > 1) B
ON A.HOST_ID = B.HOST_ID
ORDER BY A.ID;
3. JOIN USING
SELECT AIN.ANIMAL_ID, AIN.NAME
FROM ANIMAL_INS AIN JOIN ANIMAL_OUTS AOUT USING (ANIMAL_ID)
ORDER BY TIMESTAMPDIFF(DAY, AIN.DATETIME, AOUT.DATETIME) DESC
LIMIT 2;
반응형
'문제풀이 > 정보' 카테고리의 다른 글
VisualStudio에서 더욱 간편하게 백준 사용하기 <bits/stdc++.h> (0) | 2019.11.13 |
---|
Comments