SQL 복습
·
DataEngineering
1. SUM( COLUMN )  노노 COUNT( COLUMN) 2. WHERE 'CAT' IN ANIMAL_TYPE OR 'DOG' IN ANIMAL_TYPE그냥 구문 자체가 편한듯? 'CAT' IN ANIMAL_TYPE 'DOG' IN ANIMAL_TYPE  3. SELECT MIN(DATETIME) AS 시간  AS '시간' 노노 그냥 시간
SQL 오답노트 : FROM 에 alias, mod
·
DataEngineering
https://www.hackerrank.com/challenges/weather-observation-station-3/problem?isFullScreen=true Weather Observation Station 3 | HackerRankQuery a list of unique CITY names with even ID numbers.www.hackerrank.com 1.FROM ~ AS  FROM STATION AS ST (X) FROM STATION ST(O) 2. MODE, MOD & ==, = MODE(ID, 2) == 0 (X)MOD(ID, 2) = 0 (O)  3. SELECT문에 함수 넣기 SELECT COUNT(DISTINCT(CITY)) 4. rownum & WHERE( 서브쿼리 )..
SQL 프로그래머스 문제 - 대여 기록이 존재하는 자동차 리스트 구하기
·
DataEngineering
-- 코드를 입력하세요 WITH A AS( SELECT  HISTORY.CAR_ID,  COUNT(*) FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY  HISTORY LEFT JOIN CAR_RENTAL_COMPANY_CAR CAR  ON (HISTORY.CAR_ID = CAR.CAR_ID) WHERE TO_CHAR(START_DATE, 'MM') = '10' AND CAR_TYPE = '세단' GROUP BY HISTORY.CAR_ID ORDER BY HISTORY.CAR_ID DESC     )      SELECT CAR_ID FROM A ;  1. GROUP BY로 묶었을 때, 각 그룹을 대표하는 하나의 값을 바로 알려주는 건 따로 없는 듯? 저런식으로 GROUP BY를 연..
SQL 프로그래머스 문제 - 조건에 맞는 사용자 정보 조회하기
·
DataEngineering
WITH A AS ( SELECT      WRITER_ID,      COUNT(*) AS COUNTS FROM USED_GOODS_BOARD  GROUP BY WRITER_ID HAVING COUNT(*) >= 3     )      SELECT  USER_ID, NICKNAME, USERS.CITY || ' ' || USERS.STREET_ADDRESS1 || ' ' || USERS.STREET_ADDRESS2  AS 전체주소, SUBSTR(TLNO, 1,3) || '-' || SUBSTR(TLNO, 4,4) || '-'|| SUBSTR(TLNO, 8,8)  AS 전화번호 FROM A JOIN USED_GOODS_USER USERS      ON (A.WRITER_ID = USERS.USER_ID)..
SQL 프로그래머스 문제 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기(중요!)
·
DataEngineering
WITH  A  AS (     SELECT          CAR_ID,          TO_NUMBER(TO_CHAR(START_DATE, 'MM')) AS MONTH,         COUNT(*) AS RECORDS     FROM          CAR_RENTAL_COMPANY_RENTAL_HISTORY      WHERE          TO_CHAR(START_DATE, 'YYYY-MM') BETWEEN '2022-08' AND '2022-10'     GROUP BY          CAR_ID, TO_NUMBER(TO_CHAR(START_DATE, 'MM')) ), B AS (     SELECT          CAR_ID,          SUM(RECORDS) AS TOTAL_R..
SQL 프로그래머스 문제 - 즐겨찾기가 가장 많은 식당 정보 출력하기
·
DataEngineering
SELECT     FOOD_TYPE,            REST_ID,            REST_NAME,            FAVORITES  FROM( SELECT      FOOD_TYPE,     REST_ID,     REST_NAME,     FAVORITES,     RANK() OVER (PARTITION BY FOOD_TYPE ORDER BY FAVORITES DESC) AS RANK      FROM REST_INFO )WHERE RANK = 1 ORDER BY FOOD_TYPE DESC ;   1. 윈도우 함수 적극적으로 사용해야 RANK() OVER(PRTITION BY ~ ORDER BY ~)
SQL 프로그래머스 문제 - 조건에 맞는 사용자와 총 거래금액 조회하기
·
DataEngineering
WITH A AS( SELECT WRITER_ID, TOTAL_SALES FROM(  SELECT  WRITER_ID, SUM(PRICE) AS TOTAL_SALES FROM USED_GOODS_BOARD WHERE STATUS = 'DONE' GROUP BY WRITER_ID     ) WHERE TOTAL_SALES >= '700000'     ) SELECT A.WRITER_ID AS USER_ID, U.NICKNAME, A.TOTAL_SALES FROM A JOIN USED_GOODS_USER U ON(A.WRITER_ID = U.USER_ID) ORDER BY TOTAL_SALES ASC;  1. JOIN 문법 조심할 점. 1) AS 사용 금지 FROM A JOIN USED_GOODS_USER ..
SQL 프로그래머스 문제 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(중요!)
·
DataEngineering
WITH A AS( SELECT     CAR_ID,      CASE          WHEN TO_DATE('2022-10-16', 'YYYY-MM-DD') BETWEEN START_DATE AND END_DATE THEN '1'         WHEN TO_CHAR(END_DATE, 'YYYY-MM-DD') = '2022-10-16' THEN '1'         ELSE '0'     END AS AVAILABILITY,     START_DATE,     END_DATE FROM      CAR_RENTAL_COMPANY_RENTAL_HISTORY ORDER BY CAR_ID DESC ) SELECT  CAR_ID, CASE     WHEN SUM_AVA = '0' THEN '대여 가능'    ..
HardConcentrator