1. SELECT
<모든 레코드 조회하기>
SELECT * FROM ANIMAL_INS;
<역순 정렬하기>
SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;
<아픈 동물 찾기>
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE INTAKE_CONDITION="Sick";
<어린 동물 찾기>
- <> 기호는 !=와 같음
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> "Aged";
<동물의 아이디와 이름>
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
<여러 기준으로 정렬하기>
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;
<상위 n개 레코드>
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
LIMIT 1;
2. SUM,MAX,MIN
<최댓값 구하기>
이문제는 제목이 이상하다;
SELECT DATETIME AS "시간"
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;
<최솟값 구하기>
SELECT DATETIME AS 시간
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
<동물 수 구하기>
- 문자열은 "" , ' ' 둘다 사용해도 문제 없다.
SELECT COUNT(ANIMAL_ID) AS "count"
FROM ANIMAL_INS;
<중복 제거하기>
- mysql 주석은 -- 이렇게 사용~
- 중복 이름을 제거한 뒤 카운트를 출력하는 것이기 때문에 count안 distinct를 써 줘야 함
SELECT count(distinct name) -- count에서는 distinct는 cnt 안에서
from animal_ins;
3. GROUP BY
<고양이와 개는 몇 마리 있을까>
SELECT animal_type, count(animal_type) as "count"
from animal_ins
group by animal_type
order by animal_type;
<동명 동물 수 찾기>
SELECT name, count(name)
from animal_ins
group by name
having count(name)>=2
order by name;
<입양 시각 구하기1>
SELECT hour(datetime) as HOUR, COUNT(HOUR(DATETIME)) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR>=9 AND HOUR<=19
ORDER BY HOUR;
<입양 시각 구하기 2>
SET @hour := -1;
SELECT (@hour := @hour + 1) as HOUR,
(SELECT COUNT(*)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) = @hour) as COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23
4. IS NULL
<이름이 없는 동물의 아이디>
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL;
<이름이 있는 동물의 아이디>
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL;
<NULL 처리하기>
- IFNULL로 조건넣기
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;'코딩 > MySql' 카테고리의 다른 글
| SQLD 합격 후기(벼락치기 XXXXX) (0) | 2022.12.04 |
|---|---|
| [MySql] HackerRank challenges - BASIC 3 (0) | 2022.08.15 |
| [MySql] HackerRank challenges - BASIC 2 (0) | 2022.08.14 |
| [MySql] HackerRank challenges - BASIC 1 (0) | 2022.08.13 |