발등에 불이 떨어졌다.
5일만에 sql 다시(?) 익숙해지기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION IN('Sick')
ORDER BY ANIMAL_ID
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION NOT IN ('Aged')
ORDER BY ANIMAL_ID
동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요.
단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC
동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.
SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)
# 문제의 의도가 where 대신 정렬시 리밋으로 처리하는 것이 맞아보인다.
ORDER BY DATETIME LIMIT 1
가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT MAX(DATETIME)
FROM ANIMAL_INS
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS like '%강원도%'
ORDER BY FACTORY_ID ASC
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS,
CASE
WHEN (FREEZER_YN IS NULL) THEN 'N'
ELSE FREEZER_YN
END AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '%경기도%'
ORDER BY WAREHOUSE_ID
# coalesce
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, COALESCE(FREEZER_YN, 'N') AS FREEZER_YN
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result
END;
SELECT COUNT(*) AS USERS
FROM user_info
WHERE date_format(JOINED, "%Y") = 2021
&& AGE between 20 and 29
WITH T1 AS(
SELECT *
FROM FIRST_HALF
WHERE TOTAL_ORDER > 3000
), T2 AS(
SELECT *
FROM ICECREAM_INFO
WHERE INGREDIENT_TYPE = 'fruit_based'
)
select T1.FLAVOR
from T1
JOIN T2 on T1.FLAVOR = T2.FLAVOR
ORDER BY TOTAL_ORDER desc
#
SELECT T1.FLAVOR
FROM FIRST_HALF T1
JOIN ICECREAM_INFO T2
ON T1.FLAVOR = T2.FLAVOR
WHERE T1.TOTAL_ORDER > 3000 && T2.INGREDIENT_TYPE = 'fruit_based'
ORDER BY TOTAL_ORDER DESC
SELECT HISTORY_ID, CAR_ID,
DATE_FORMAT(START_DATE, "%Y-%m-%d") AS START_DATE,
DATE_FORMAT(END_DATE, "%Y-%m-%d") AS END_DATE,
CASE
WHEN DATEDIFF(END_DATE, START_DATE)+1 >= 30
THEN '장기 대여'
ELSE '단기 대여'
END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE DATE_FORMAT(START_DATE,'%Y') = 2022
&& DATE_FORMAT(START_DATE,'%m') = 09
ORDER BY HISTORY_ID DESC
# 다른 분의 답
SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE, DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE,
IF(DATEDIFF(END_DATE, START_DATE) +1 >= 30, '장기 대여', '단기 대여') AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE start_DATE LIKE '2022-09%'
ORDER BY HISTORY_ID DESC;
! 게시글 != 댓글
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS,
DATE_FORMAT(R.CREATED_DATE,'%Y-%m-%d') as CREATED_DATE
FROM USED_GOODS_BOARD AS B
JOIN USED_GOODS_REPLY AS R
ON B.BOARD_ID = R.BOARD_ID
WHERE DATE_FORMAT(B.CREATED_DATE, '%Y-%m') = '2022-10'
ORDER BY CREATED_DATE, TITLE;
B.CREATED_DATE, R.CREATED_DATE 를 정확한 위치에 써야 정답이 된다.