반응형

# [프로그래머스] SQL 고득점 Kit - SELECT (Oracle)

13. 오프라인/온라인 판매 데이터 통합하기

문제

ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요.

▼ ONLINE_SALE 테이블 구조

Column name	Type	Nullable
ONLINE_SALE_ID	INTEGER	FALSE
USER_ID	INTEGER	FALSE
PRODUCT_ID	INTEGER	FALSE
SALES_AMOUNT	INTEGER	FALSE
SALES_DATE	DATE	FALSE

▼ OFFLINE_SALE 테이블 구조

Column name	Type	Nullable
OFFLINE_SALE_ID	INTEGER	FALSE
PRODUCT_ID	INTEGER	FALSE
SALES_AMOUNT	INTEGER	FALSE
SALES_DATE	DATE	FALSE

풀이

  • 조건 : 판매 날짜 2022-03, USER_ID NULL, 판매일 기준 오름차순 (ASC), 판매일 동일하다면 상품 ID 기준 오름차순, 상품 ID 동일하다면 유저 ID 기준 오름차순
SELECT TO_CHAR(A1.SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
    , A1.PRODUCT_ID
    , A1.USER_ID
    , A1.SALES_AMOUNT
FROM ONLINE_SALE A1
WHERE 1=1
AND TO_CHAR(A1.SALES_DATE, 'YYYY-MM') = '2022-03'
UNION ALL
SELECT TO_CHAR(A2.SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
    , A2.PRODUCT_ID
    , null AS USER_ID
    , A2.SALES_AMOUNT
FROM OFFLINE_SALE A2
WHERE 1=1
AND TO_CHAR(A2.SALES_DATE, 'YYYY-MM') = '2022-03'
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID

 

14. 역순 정렬하기

문제

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. 

ANIMAL_INS 테이블 구조

NAME	TYPE	NULLABLE
ANIMAL_ID	VARCHAR(N)	FALSE
ANIMAL_TYPE	VARCHAR(N)	FALSE
DATETIME	DATETIME	FALSE
INTAKE_CONDITION	VARCHAR(N)	FALSE
NAME	VARCHAR(N)	TRUE
SEX_UPON_INTAKE	VARCHAR(N)	FALSE

풀이

  • 조건 : 모든 동물의 이름과 보호 시작일 조회, ANIMAL_ID 역순 (DESC) 정렬
SELECT NAME
    , DATETIME
FROM ANIMAL_INS 
WHERE 1=1
ORDER BY ANIMAL_ID DESC

 

15. 아픈 동물 찾기

문제

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

▼ ANIMAL_INS 테이블 구조

NAME	TYPE	NULLABLE
ANIMAL_ID	VARCHAR(N)	FALSE
ANIMAL_TYPE	VARCHAR(N)	FALSE
DATETIME	DATETIME	FALSE
INTAKE_CONDITION	VARCHAR(N)	FALSE
NAME	VARCHAR(N)	TRUE
SEX_UPON_INTAKE	VARCHAR(N)	FALSE

풀이

  • 조건 : 아픈 동물 찾기, 아이디 순으로 정렬
SELECT ANIMAL_ID
    , NAME
FROM ANIMAL_INS 
WHERE 1=1
  AND INTAKE_CONDITION = 'Sick'
ORDER BY ANIMAL_ID

 

16. 어린 동물 찾기

문제

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

▼ ANIMAL_INS 테이블 구조

풀이

  • 조건 : 젊은 동물 조회, 아이디 순으로 정렬
SELECT ANIMAL_ID
    , NAME
FROM ANIMAL_INS 
WHERE 1=1
  AND INTAKE_CONDITION != 'Aged'
ORDER BY ANIMAL_ID
반응형
반응형

# [프로그래머스] SQL 고득점 Kit - SELECT (Oracle)

10. 강원도에 위치한 생산공장 목록 출력하기

문제

FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.

▼FOOD_FACTORY 테이블 구조

Column name	Type	Nullable
FACTORY_ID	VARCHAR(10)	FALSE
FACTORY_NAME	VARCHAR(50)	FALSE
ADDRESS	VARCHAR(100)	FALSE
TLNO	VARCHAR(20)	TRUE

풀이

  • 조건 : 강원도에 위치한 식품공장, 공장 ID 기준으로 오름차순 (ASC)
SELECT FACTORY_ID
     , FACTORY_NAME
     , ADDRESS
FROM FOOD_FACTORY 
WHERE 1=1
AND ADDRESS LIKE '강원도%'  -- 주소에 강원도가 포함된 곳
ORDER BY FACTORY_ID ASC;   -- 공장ID 기준 오름차순 (ASC)

 

11. 모든 레코드 조회하기

문제

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. 

ANIMAL_INS 테이블 구조

NAME	TYPE	NULLABLE
ANIMAL_ID	VARCHAR(N)	FALSE
ANIMAL_TYPE	VARCHAR(N)	FALSE
DATETIME	DATETIME	FALSE
INTAKE_CONDITION	VARCHAR(N)	FALSE
NAME	VARCHAR(N)	TRUE
SEX_UPON_INTAKE	VARCHAR(N)	FALSE

풀이

  • 조건 : 모든 동물의 정보 조회, 동물 ID 기준으로 정렬
SELECT *				-- 모든 레코드
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID      -- 동물ID 기준 오름차순 (ASC)

 

12. 재구매가 일어난 상품과 회원 리스트 구하기

문제

ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요.

▼ONLINE_SALE 테이블 구조

Column name	Type	Nullable
ONLINE_SALE_ID	INTEGER	FALSE
USER_ID	INTEGER	FALSE
PRODUCT_ID	INTEGER	FALSE
SALES_AMOUNT	INTEGER	FALSE
SALES_DATE	DATE	FALSE

풀이 

  • 조건 : 동일 회원이 동일한 상품 재구매, 회원 ID 기준 오름차순 (ASC), 회원 ID 동일할 경우 상품 ID 기준 내림차순 (DESC)
방법1)
SELECT DISTINCT USER_ID
	 , PRODUCT_ID
FROM (SELECT USER_ID
     , PRODUCT_ID
     , COUNT(*)OVER(PARTITION BY USER_ID, PRODUCT_ID) AS CNT
FROM ONLINE_SALE)
WHERE 1=1
AND CNT >= 2
ORDER BY USER_ID, PRODUCT_ID DESC


방법2)
SELECT USER_ID
	 , PRODUCT_ID
FROM ONLINE_SALE
WHERE 1=1
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) >= 2
ORDER BY USER_ID, PRODUCT_ID DESC
반응형
반응형

[프로그래머스] SQL 고득점 Kit - SELECT (Oracle)

1. 3월에 태어난 여성 회원 목록 출력하기

문제

MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.

▼ MEMBER_PROFILE 테이블 구조

Column name	Type	Nullable
MEMBER_ID	VARCHAR(100)	FALSE
MEMBER_NAME	VARCHAR(50)	FALSE
TLNO	VARCHAR(50)	TRUE
GENDER	VARCHAR(1)	TRUE
DATE_OF_BIRTH	DATE	TRUE

풀이

  • 조건 : 생일이 3월인 대상, 여성 회원, 전화번호가 NULL인 경우 제외, 회원 ID 기준 오름차순(ASC)
SELECT MEMBER_ID
     , MEMBER_NAME
     , GENDER
     , TO_CHAR(DATE_OF_BIRTH, 'YYYY-MM-DD') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE 1=1
  AND TO_CHAR(DATE_OF_BIRTH, 'MM') = '03'    -- 생일이 3월
  AND TLNO IS NOT NULL                       -- 연락처가 Null 이 아닌 대상
  AND GENDER = 'W'                           -- 성별이 여성(W) 인 대상
ORDER BY MEMBER_ID ASC;                      -- MEMBER_ID 기준 오름차순

 

2. 과일로 만든 아이스크림 고르기

문제

상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요.

▼ FIRST_HALF 테이블 구조

NAME	TYPE	NULLABLE
SHIPMENT_ID	INT(N)	FALSE
FLAVOR	VARCHAR(N)	FALSE
TOTAL_ORDER	INT(N)	FALSE

▼ ICECREAM_INFO 테이블 구조

NAME	TYPE	NULLABLE
FLAVOR	VARCHAR(N)	FALSE
INGREDIENT_TYPE	VARCHAR(N)	FALSE

풀이

  • 조건 : 상반기 총주문량 3,000 보다 높은 경우, 아이스크림 주 성분이 과일, 총주문량이 큰 순서대로 정렬(DESC)
SELECT A.FLAVOR
FROM FIRST_HALF A
INNER JOIN ICECREAM_INFO B
   ON B.FLAVOR = A.FLAVOR
WHERE 1=1
  AND A.TOTAL_ORDER  > 3000               -- 상반기 총주문량이 3,000 보다 높은 경우
  AND B.INGREDIENT_TYPE = 'fruit_based'   -- 주 성분이 과일
ORDER BY A.TOTAL_ORDER DESC;              -- 총주문량이 큰 순서대로 정렬(DESC)

 

3. 12세 이하인 여자 환자 목록 출력하기

문제

PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.

▼ PATIENT 테이블 구조

Column name	Type	Nullable
PT_NO	VARCHAR(10)	FALSE
PT_NAME	VARCHAR(20)	FALSE
GEND_CD	VARCHAR(1)	FALSE
AGE	INTEGER	FALSE
TLNO	VARCHAR(50)	TRUE

풀이

  • 조건 : 12세 이하 여성환자, 전화번호 없는 경우 NONE 출력, 나이 기준 내림차순(DESC), 나이가 동일하면 환자이름 기준 오름차순 (ASC)
SELECT PT_NAME
    , PT_NO
    , GEND_CD
    , AGE
    , NVL(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE 1=1
  AND GEND_CD = 'W'                  -- 성별이 여성
  AND AGE <= 12                      -- 나이가 12세 이하
ORDER BY AGE DESC, PT_NAME ASC;      -- 나이 기준 내림차순(DESC), 나이 동일하면 이름 기준 오름차순(ASC)

 

4. 흉부외과 또는 일반외과 의사 목록 출력하기

문제

DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.

▼ DOCTOR 테이블 구조

Column name	Type	Nullable
DR_NAME	VARCHAR(20)	FALSE
DR_ID	VARCHAR(10)	FALSE
LCNS_NO	VARCHAR(30)	FALSE
HIRE_YMD	DATE	FALSE
MCDP_CD	VARCHAR(6)	TRUE
TLNO	VARCHAR(50)	TRUE

풀이

  • 조건 : 진료과가 CS or GS, 고용일자 기준 내림차순 (DESC), 고용일자 동일하면 이름 기준 오름차순 (ASC)
SELECT DR_NAME
    , DR_ID
    , MCDP_CD
    , TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') AS HIRE_YMD
FROM DOCTOR 
WHERE 1=1
  AND MCDP_CD IN ('CS', 'GS')          -- 진료과가 CS, GS
ORDER BY HIRE_YMD DESC, DR_NAME ASC;   -- 고용일자 기준 내림차순 (DESC), 고용일자 동일하면 이름 기준 오름차순 (ASC)

 

5. 평균 일일 대여 요금 구하기

문제

CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.

CAR_RENTAL_COMPANY_CAR 테이블 구조

Column name	Type	Nullable
CAR_ID	INTEGER	FALSE
CAR_TYPE	VARCHAR(255)	FALSE
DAILY_FEE	INTEGER	FALSE
OPTIONS	VARCHAR(255)	FALSE

풀이

  • 조건 : 자동차 종류가 SUV, 평균(AVG) 일일 대여 요금은 소수 첫 번째 자리에서 반올림(ROUND) 하고 컬럼명 지정
SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEE -- AVG 로 평균 구하고, ROUND 로 반올림, AS 로 명명
FROM CAR_RENTAL_COMPANY_CAR 
WHERE CAR_TYPE = 'SUV';                     -- 자동차종류가 SUV

 

6. 인기있는 아이스크림

문제

상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요.

▼ FIRST_HALF 테이블 구조

NAME	TYPE	NULLABLE
SHIPMENT_ID	INT(N)	FALSE
FLAVOR	VARCHAR(N)	FALSE
TOTAL_ORDER	INT(N)	FALSE

풀이

  • 조건 : 총주문량 기준 내림차순 (DESC) 정렬, 총주문량이 동일하다면 출하 번호 기준 오름차순 (ASC)
SELECT FLAVOR
FROM FIRST_HALF 
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC;   -- 총주문량 기준 내림차순 (DESC) 정렬, 총주문량이 동일하다면 출하 번호 기준 오름차순 (ASC)

 

7. 서울에 위치한 식당 목록 출력하기

문제

REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.

REST_INFO 테이블 구조

Column name	Type	Nullable
REST_ID	VARCHAR(5)	FALSE
REST_NAME	VARCHAR(50)	FALSE
FOOD_TYPE	VARCHAR(20)	TRUE
VIEWS	NUMBER	TRUE
FAVORITES	NUMBER	TRUE
PARKING_LOT	VARCHAR(1)	TRUE
ADDRESS	VARCHAR(100)	TRUE
TEL	VARCHAR(100)	TRUE

REST_REVIEW 테이블 구조

Column name	Type	Nullable
REVIEW_ID	VARCHAR(10)	FALSE
REST_ID	VARCHAR(10)	TRUE
MEMBER_ID	VARCHAR(100)	TRUE
REVIEW_SCORE	NUMBER	TRUE
REVIEW_TEXT	VARCHAR(1000)	TRUE
REVIEW_DATE	DATE	TRUE

풀이

  • 조건 : 서울에 위치한 식당, 리뷰 평균점수는 소수점 세 번쨰 자리에서 반올림 (ROUND), 결과는 평균점수 기준으로 내림차순 (DESC), 평균점수가 동일하다면 즐겨찾기수 기준 내림차순(DESC)
SELECT A.REST_ID
    , A.REST_NAME
    , A.FOOD_TYPE
    , A.FAVORITES
    , A.ADDRESS
    , ROUND(AVG(B.REVIEW_SCORE), 2) AS SCORE -- 리뷰점수 평균, 반올림, AS 명명
FROM REST_INFO A
INNER JOIN REST_REVIEW B
   ON B.REST_ID = A.REST_ID
WHERE 1=1
  AND A.ADDRESS LIKE '서울%'           -- 주소가 서울로 시작 LIKE 검색
GROUP BY A.REST_ID                     -- 집계함수 사용위한 GROUP BY
    , A.REST_NAME
    , A.FOOD_TYPE
    , A.FAVORITES
    , A.ADDRESS
ORDER BY SCORE DESC, FAVORITES DESC

 

8. 조건에 부합하는 중고거래 댓글 조회하기

문제

USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.

USED_GOODS_BOARD 테이블 구조

Column name	Type	Nullable
BOARD_ID	VARCHAR(5)	FALSE
WRITER_ID	VARCHAR(50)	FALSE
TITLE	VARCHAR(100)	FALSE
CONTENTS	VARCHAR(1000)	FALSE
PRICE	NUMBER	FALSE
CREATED_DATE	DATE	FALSE
STATUS	VARCHAR(10)	FALSE
VIEWS	NUMBER	FALSE

USED_GOODS_REPLY 테이블 구조

Column name	Type	Nullable
REPLY_ID	VARCHAR(10)	FALSE
BOARD_ID	VARCHAR(5)	FALSE
WRITER_ID	VARCHAR(50)	FALSE
CONTENTS	VARCHAR(1000)	TRUE
CREATED_DATE	DATE	FALSE

풀이

  • 조건 : 2022년 10월에 작성된 게시글, 댓글 작성일 기준 오름차순 (ASC), 댓글 작성일 동일하면 게시글 제목 기준 오름차순 (ASC)
SELECT A.TITLE        /*게시글 제목*/
    , A.BOARD_ID      /*게시글 ID*/
    , B.REPLY_ID      /*댓글 ID*/
    , B.WRITER_ID     /*댓글 작성자 ID*/
    , B.CONTENTS      /*댓글 내용*/
    , TO_CHAR(B.CREATED_DATE, 'YYYY-MM-DD') AS CREATED_DATE /*댓글 작성일*/
FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_REPLY B
   ON B.BOARD_ID = A.BOARD_ID
WHERE 1=1
  AND TO_CHAR(A.CREATED_DATE, 'YYYY-MM') = '2022-10'   -- 2022-10 작성
ORDER BY B.CREATED_DATE, A.TITLE                       -- 댓글 작성일 기준 오름차순 (ASC), 댓글 작성일 동일하면 게시글 제목 기준 오름차순 (ASC)

 

9. 조건에 맞는 도서 리스트 출력하기

문제

BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.

▼ BOOK 테이블 구조

Column name	Type	Nullable	Description
BOOK_ID	INTEGER	FALSE	도서 ID
CATEGORY	VARCHAR(N)	FALSE	카테고리 (경제, 인문, 소설, 생활, 기술)
AUTHOR_ID	INTEGER	FALSE	저자 ID
PRICE	INTEGER	FALSE	판매가 (원)
PUBLISHED_DATE	DATE	FALSE	출판일

풀이

  • 조건 : 2021년 출판, 인문 카테고리, 출판일 기준 오름차순 (ASC)
SELECT BOOK_ID
    , TO_CHAR(PUBLISHED_DATE, 'YYYY-MM-DD') AS PUBLISHED_DATE
FROM BOOK 
WHERE 1=1
  AND TO_CHAR(PUBLISHED_DATE, 'YYYY') = '2021'     -- 출판일 2021
  AND CATEGORY = '인문'                            -- 카테고리 인문
ORDER BY PUBLISHED_DATE ASC                        -- 출판일 기준 오름차순 (ASC)
반응형

+ Recent posts