- 모든 레코드 조회하기 : too easy
SELECT * from ANIMAL_INS as ani_i
ORDER BY ani_i.ANIMAL_ID
SELECT NAME, DATETIME from ANIMAL_INS as ani_i
ORDER BY ani_i.ANIMAL_ID desc
SELECT ANIMAL_ID, NAME from ANIMAL_INS as ani_i
WHERE 1=1
AND INTAKE_CONDITION ='Sick'
ORDER BY ANIMAL_ID asc;
SELECT ANIMAL_ID, NAME from ANIMAL_INS as ani_i
WHERE 1=1
AND INTAKE_CONDITION !='Aged'
ORDER BY ANIMAL_ID asc;
SELECT ANIMAL_ID, NAME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY ANIMAL_ID asc;
SELECT ANIMAL_ID, NAME, DATETIME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY NAME asc, DATETIME desc;
SELECT NAME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY DATETIME asc
LIMIT 1;
SELECT DATETIME from ANIMAL_INS as ani_i
WHERE 1=1
ORDER BY DATETIME desc
LIMIT 1;
( 출제 의도에 맞는 답 )
SELECT max(datetime) as '시간' from animal_ins;
SELECT min(datetime) from animal_ins;
SELECT count(ANIMAL_ID) from ANIMAL_INS as ani_i
SELECT count(*) from (
SELECT NAME, count(ANIMAL_ID) from ANIMAL_INS as ani_i
WHERE 1=1
AND ani_i.NAME != 'NULL'
GROUP BY ani_i.NAME
) as c;
( 출제 의도에 맞는 답 : 간단하게 DISTINCT 를 쓰자.. ㅠ )
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS;
SELECT ANIMAL_TYPE, count(ANIMAL_ID) from ANIMAL_INS as ani_i
group by ani_i.ANIMAL_TYPE
order by ani_i.ANIMAL_TYPE asc;
select NAME, count(*) from ANIMAL_INS
where 1=1
AND NAME != 'NULL'
group by NAME
HAVING count(*) > 1
order by NAME asc
as HOUR
부분을 설정을 안해줘서 having 절에서 Hour 로 조건을 걸때 애를 먹었다.select HOUR(DATETIME) as HOUR, count(*) from ANIMAL_OUTS
group by HOUR
HAVING 1=1
AND HOUR > 8
AND HOUR < 20
order by HOUR asc;
SELECT HOUR, COUNT(OUTS.DATETIME) AS COUNT
FROM
(
WITH RECURSIVE CTE AS
(
SELECT 0 AS HOUR
UNION ALL
SELECT 1 + HOUR AS HOUR
FROM CTE
WHERE HOUR < 23
)SELECT * FROM CTE
) TIME
LEFT JOIN ANIMAL_OUTS OUTS ON HOUR(OUTS.DATETIME) = TIME.HOUR
GROUP BY HOUR
ORDER BY HOUR ASC