
테이블에서 종류가 'SUV'인 상품들의 평균 일일 대여 요금을 출력, 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림, 컬럼명은 AVERAGE_FEE로 지정
--SQL문
SELECT ROUND(AVG(DAILY_FEE,0)) AS AVERAGE_FEE
FROM TABLE
WHERE TYPE='SUV'
테이블에서 생일에 3월인 여성 회원의 ID, 이름, 성별, 생년월일 조회, 전화번호가 NULL인 경우는 출력대상에서 제외, 결과는 회원ID 기준으로 오름차순 정렬
--SQL문
SELECT ID, NAME, GENDER, DATE_FORMAT(BIRTH,'%Y-%m-%d')
FROM TABLE
WHERE BIRTH LIKE '_____03%' AND GENDER='W' AND TLNO IS NOT NULL
ORDER BY ID ASC
테이블에서 진료과가 CS이거나 GS인 의사의 이름, ID, 진료과, 고용일자를 조회, 결과는 고용일자 기준 내림차순, 같다면 이름 기준 오름차순
--SQL문
SELECT NAME, ID, CD, DATE_FORMAT(YMD, '%Y-%m-%d')
FROM TABLE
WHERE CD = 'CS' OR CD = 'GS'
ORDER BY YMD DESC, NAME ASC
상반기에 판매된 상품 맛을 총주문량 기준으로 내림차순 정렬, 같다면 출하 번호 기준으로 오름차순 정렬
--SQL문
SELECT FLAVOR FROM TABLE
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC
테이블에서 12세 이하인 여자환자의 이름, 번호, 성별, 나이, 전화를 조회, 전화번호 없으면 'NONE' 출력, 나이 기준 내림차순, 같으면 이름 기준 오름차순
--SQL문
SELECT NAME, NO, GEN, AGE, COALESCE(TLNO, 'NONE')
FROM TABLE
WHERE AGE<=12 AND GEN='W'
ORDER BY AGE DESC, NAME ASC
테이블에서 강원도에 위치한 식품공장의 ID, 이름, 주소 조회, ID 기준으로 오름차순 정렬
--SQL문
SELECT ID, NAME, ADDRESS
FROM TABLE
WHERE ADDRESS LIKE '강원도%'
ORDER BY ID ASC
테이블에서 2021년 출판된 '인문' 카테고리에 속하는 도서 리스트 찾아서 ID, DATE 출력, DATE 기준 오름차순
--SQL문
SELECT ID, DATE_FORMAT(DATE,'%Y-%m-%d') AS DATE
FROM TABLE
WHERE DATE LIKE '2021%' AND CATEGORY='인문'
ORDER BY DATE ASC
ID 순으로 전체 조회
--SQL문
SELECT * FROM TABLE
ORDER BY ID ASC
테이블의 이름과 시작일을 조회, ID의 역순
--SQL문
SELECT NAME, DATE FROM TABLE
ORDER BY ID ASC
테이블에서 아픈 동물의 ID, 이름 조회, ID 순서
--SQL문
SELECT ID, NAME FROM TABLE
WHERE CONDITION = 'Sick'
ORDER BY ID ASC
테이블에서 젊은 동물(=not aged)의 아이디, 이름을 아이디 순으로 조회
--SQL문
SELECT ID, NAME FROM TABLE
WHERE CONDITION != 'Aged'
ORDER BY ID ASC
모든 동물의 아이디, 이름을 아이디 순으로 조회
-SQL문
SELECT ID, NAME FROM TABLE
ORDER BY ID ASC
모든 동물의 아이디, 이름, 보호시작일을 이름 순으로 조회, 같으면 보호를 나중에 시작한 동물 먼저 조회
--SQL문
SELECT ID, NAME, DATE
FROM TABLE
ORDER BY NAME ASC, DATE DESC
테이블에서 가장 큰 물고기 10마리의 ID와 길이 출력, 길이를 기준으로 내림차순, 길이 같다면 ID 오름차순
--SQL문
SELECT ID, LENGTH FROM TABLE
ORDER BY LENGTH DESC, ID ASC
LIMIT 10
테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터 구하여, 재구매한 회원 ID와 상품 ID 출력, 회원 ID 기준 오름차순, 같다면 상품 ID 기준 내림차순
--SQL문
SELECT USER_ID, PRODUCT_ID
FROM TABLE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*)>1
ORDER BY USER_ID ASC, PRODUCT_ID DESC
DATE가 가장 빠른 동물의 이름을 조회
--SQL문
SELECT NAME FROM TABLE
ORDER BY DATE ASC
LIMIT 1
테이블에서 Python 스킬 가진 개발자 정보 조회, ID, 이메일, 이름, 성 조회하고 ID 기준 오름차순 정렬
--SQL문
SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM TABLE
WHERE SKILL_1='Python' OR SKILL_2='Python' OR SKILL_3='Python'
ORDER BY ID ASC
총주문량이 3000보다 높으면서 주성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회
--SQL문
SELECT f.FLAVOR FROM TABLE1 f
JOIN TABLE2 i ON f.FLAVOR=i.FLAVOR
WHERE f.TOTAL_ORDER > 3000
AND i.INGREDIENT_TYPE = 'fruit_based'
ORDER BY f.TOTAL_ORDER DESC
BORED와 REPLY 테이블에서 2022년 10월에 작성된 게시글의 제목, ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 작성일을 조회, 작성일 기준 오름차순, 같으면 게시글 제목 기준으로 오름차순
--SQL문
SELECT b.TITLE, BOARD_ID, r.REPLY_ID, r.WRITER_ID, r.CONTENTS, DATE_FORMAT(r.CERATED_DATE, '%Y-%m-%d')
FROM USED_GOODS_BOARD b
JOIN USED_GOODS_REPLY r
ON b.BOARD_ID=r.BOARD_ID
WHERE b.CERATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'
ORDER BY r.CREATED_DATE ASC, b.TITLE ASC
테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력
--SQL문
SELECT COUNT(AGE) FROM TABLE
WHERE JOINED LIKE '2021%'
AND AGE BETWEEN 20 AND 29
잡은 물고기 중 길이가 10cm 이하인 물고기의 수 출력
--SQL문
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO
WHERE LENGTH IS NULL
2번 형질이 보유하지 않으면서 1번이나 3번 형질은 보유하고 있는 대장균 개체의 수 출력
--SQL문
SELECT COUNT(*) AS COUNT
FROM TABLE
WHERE GENOTYPE&2=0
AND (GENOTYPE&1>0 OR GENOTYPE&4>0)
테이블에서 잡은 BASS와 SNAPPER의 수를 출력
--SQL문
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO a
JOIN FISH_NAME_INFO b
ON a.FISH_TYPE=b.FISH_TYPE
WHERE b.FISH_NAME='BASS' or b.FISH_NAME='SNAPPER'
테이블에서 Python이나 C# 스킬을 가진 개발자 정보 조회, ID, 이메일, 이름, 성 조회, ID 기준 오름차순
--SQL문
SELECT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME
FROM DEVELOPERS AS D
JOIN SKILLCODES AS S
ON (D.SKILL_CODE & S.CODE) = S.CODE AND S.NAME IN ('Python', 'C#')
ORDER BY D.ID;
아이템의 휘귀도가 'RARE'인 아이템의 모든 다음 업그레이트 아이템의 ID, 명, 희귀도 출력하고 ID 기준 내림차순
--SQL문
SELECT b.ID, a.NAME, a.RARITY
FROM ITEM_INFO a
JOIN ITEM_TREE b
ON a.ID=b.ID
WHERE b.PARENT_ID IN
(SELECT ID FROM ITEM_INFO WHERE RARITY='RARE')
ORDER BY a.ID DESC
대장균 개체 크기가 100 이하라면 'LOW', 100 초과 1000 이하라면 'MEDIUM', 1000 초과라면 'HIGH'로 분류. ID, SIZE 출력, ID에 대해 오름차순
--SQL문
SELECT ID,
CASE
WHEN SIZE_OF_COLONY<100 THEN 'LOW'
WHEN SIZE_OF_COLONY>1000 THEN 'HIGH'
ELSE 'MEDIUM'
END AS SIZE
FROM TABLE
ORDER BY ID ASC
부모 형질을 모두 보유한 대장균의 ID, 형질, 부모 대장균의 형질을 출력, ID에 대해 오름차순
--SQL문
SELECT a.ID, a.GENOTYPE, b.GENOTYPE
AS PARENT_GENOTYPE
FROM TABLE a
JOIN TABLE b
ON a.PARENT_ID=b.ID
WHERE (b.GENOTYPE&a.GENOTYPE)=b.GENOTYPE
ORDER BY a.ID
대장균 개체의 ID와 자식의 수를 출력, 자식 없다면 자식의 수 0으로 출력, ID 기준 오름차순
--SQL문
SELECT a.ID, COUNT(b.ID) AS ChILD_COUNT
FROM TABLE a
LEFT JOIN TABLE b
ON a.ID=b.PARENT_ID
GROUP BY a.ID
ORDER BY a.ID
개체 크기를 내림차순으로 정렬할 때, 상위 0~25%를 'critical', 26~50%를 'high', 51~75%를 'medium', 76~100%를 'low'라고 분류한다. ID와 분류된 이름을 출력, ID에 대해 오름차순으로 정렬
--SQL문
SELECT ID,
CASE
WHEN NTILE(4) OVER (ORDER BY SIZE DESC) = 1 THEN 'CRITICAL'
WHEN NTILE(4) OVER (ORDER BY SIZE DESC) = 2 THEN 'HIGH'
WHEN NTILE(4) OVER (ORDER BY SIZE DESC) = 3 THEN 'MEDIUM'
WHEN NTILE(4) OVER (ORDER BY SIZE DESC) = 4 THEN 'LOW'
END AS COLONY_NAME
FROM TABLE
ORDER BY ID
INFO와 REVIEW 테이블에서 서울에 위치한 식당들의 ID, 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수 조회, 이때 리뷰 평균 점수는 소수점 세 번째 자리에서 반올림, 결과는 평균점수를 기준으로 내림차순, 같다면 즐겨찾기수 기준 내림차순
--SQL문
SELECT info.REST_ID, info.REST_NAME, info.FOOD_TYPE, info.FAVORITES, info.ADDRESS, ROUND(AVG(review.REVIEW_SCORE),2) AS SCORE
FROM REST_INFO info
JOIN REST_REVIEW review
ON info.REST_ID=review.REST_ID
WHERE ADDRESS LIKE '서울%'
GROUP BY inf.REST_ID
ORDER BY SCORE DESC, info.FAVORITES DESC
ON고 OFF 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력, OFF 테이블의 판매 데이터는 USER_ID 값은 NULL 표시, 판매일 기준 오름차순, 같다면 상품ID 기준 오름차순, 또 같다면 유저ID 기준 오름차순
--SQL문
SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d'), PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM (
-- ONLINE_SALE 테이블의 2022년 데이터
SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
WHERE SALES_DATE BETWEEN '2022-03-01' AND '2022-03-01'
UNION ALL
-- OFFLINE_SALE 테이블의 2022년 3월 데이터
SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE BETWEEN '2022-03-01' AND '2022-03-31') AS combined_sales
ORDER SALES_DATE ASC, PRODUCT_ID ASC, USER_ID ASC;
3세대 대장균의 ID 오름차순 출력
--SQL문
SELECT ID FROM ECOLI_DATA
WHERE TABLE IN
(SELECT ID FROM TABLE WHERE PARENT_ID IN
(SELECT ID FROM TABLE WHERE PARENT_ID IS NULL))
ORDER BY ID ASC
각 세대별 자식이 없는 개체의 수와 세대 출력, 세대에 대해 오름차순
--SQL문
WITH RECURSIVE GEN AS(
SELECT ID, PARENT_ID, 1 AS GE
FROM TABLE
WHERE PARENT_ID IS NULL
UNION ALL
SELECT N.ID, N.PARENT_ID, G.GE+1
FROM TABLE N
JOIN GEN G ON N.PARENT_ID=G.ID
)
SELECT COUNT(ID) AS COUNT, GE AS GENERATION
FROM GEN
WHERE ID NOT IN (
SELECT PARENT_ID
FROM GEN
WHERE PARENT_ID IS NOT NULL
)
GROUP BY GE