본문 바로가기

SQL44

programmers : 조건에 맞는 도서와 저자 리스트 출력하기 USING / = SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE FROM BOOK JOIN AUTHOR USING(AUTHOR_ID) WHERE CATEGORY = '경제' ORDER BY PUBLISHED_DATE ; ON / LIKE SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE FROM BOOK B JOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_ID WHERE CATEGORY LIKE '%경제%' ORDER BY PUBLISHED_DATE ; 2023. 1. 12.
ORACLE DUAL DUAL SELECT 2023*1*10 FROM TEST.LIST; SELECT문은 FROM절을 생략할 수 없으므로 테이블을 기술해야하지만, 산술 연산 결과가 중복되어 나타남. DUAL 테이블은 산술 연산의 결과를 한 줄로 얻기 위해 오라클에서 제공하는 테이블로, FROM절에서 기술할 테이블이 없는 경우 사용하는 DUMMY 테이블 SELECT 2023*1*10 FROM DUAL; DESC 명령어로 DUAL 테이블의 구조를 확인할 수 있음 DESC DUAL; DUAL 테이블은 DUMMY 라는 단 하나의 컬럼으로 구성되어있으며 컬럼에서 최대 길이는 1이다. SELECT * FROM DUAL; 또한 DUAL 테이블은 DUMMY라는 컬럼에 X라는 단 하나의 로우를 저장하고 있지만 쿼리문의 수행 결과가 하나의 로.. 2023. 1. 10.
programmers : 년, 월, 성별 별 상품 구매 회원 수 구하기 년, 월, 성별 별 상품 구매 회원 수 구하기 SELECT YEAR(OS.SALES_DATE) YEAR, MONTH(OS.SALES_DATE) MONTH, UI.GENDER GENDER, COUNT(DISTINCT USER_ID) USERS FROM USER_INFO UI JOIN ONLINE_SALE OS USING(USER_ID) WHERE UI.GENDER IS NOT NULL GROUP BY YEAR(OS.SALES_DATE), MONTH(OS.SALES_DATE), UI.GENDER ORDER BY YEAR, MONTH, GENDER ASC ; GROUP BY 로 연도, 월, 성별을 나눈 뒤, 회원 수를 COUNT했다. 이때, 중요한 점은 DISTINCT 부분인 것 같다. 처음에는 DISTINC.. 2022. 12. 23.
programmers : 식품분류별 가장 비싼 식품의 정보 조회하기 식품분류별 가장 비싼 식품의 정보 조회하기 처음에는 GROUP BY 와 HAVING을 이용해서 푸는 문제인줄 알았는데 WHERE절의 SUBQUERY를 이용해서 매칭시키는 방법으로 푸니 정답이 나왔다-! SELECT CATEGORY, PRICE AS MAX_PRICE , PRODUCT_NAME FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유') AND PRICE IN (SELECT MAX(PRICE) PRICE FROM FOOD_PRODUCT GROUP BY CATEGORY) ORDER BY PRICE DESC ; 틀린 답으로 했을 때 실행 결과 SELECT CATEGORY, MAX(PRICE) MAX_PRICE , PRODUCT_NAME FROM .. 2022. 12. 22.