DS가 되기 위한 여정 👩‍💻
728x90
반응형

Data Science/SQL 44

[Elice sql] 그룹 함수

*엘리스 코딩 강의안* - 실무에서는 group by를 더 많이 사용한다고 함.  - rollup() 뒤에 오는 컬럼 명 순서가 중요함. 그것을 기준으로 나누는 것 .- so, rollup과 달리 cube는 뒤에 오는 칼럼의 순서가 상관이 없음. - 노랑: rollup(d.name, j.name)- 분홍: rollup(j.name, d.name)=> cube는 이 2개를 모두 합친 것. - 마리아 디비는 cube 가 없으니 with rollup 2개를 union  해주면 됨. - ROLLUP처럼 동시에 고려하는게 아니라, grouping sets() 뒤에 칼럼 각각의 값을 그루핑- union all 써주면 됨.

Data Science/SQL 2025.03.11

[Elice sql] 윈도우 함수.. 오타 진짜 주의

- 그룹 내 행 순서함수 - 윈도우 함수가 길어지니깐 헷갈려진다.. 수정 전-- 그룹 별, 참가자의 앞, 뒤 기록과 그룹 내에서 가장 빠른 기록, 가장 느린 기록을 조회하세요.select ID GROUP_NUM, TIME_RECORD, LAG(TIME_RECORD, 1) over(PARTITION BY GROUP_NUM ORDER BY TIME_RECORD) LAG, LEAD(TIME_RECORD, 1) OVER(PARTITION BY GROUP_NUM ORDER BY TIME_RECORD) LEAD, FIRST_VALUE(TIME_RECORD) OVER(PARTITION BY GROUP_NUM ORDER BY TIME_RECORD LOWS BETWEEN UNBOUNDED PRECEED..

Data Science/SQL 2025.03.11

[Elice sql] as 뒤에는 () 사용 X

- 집계함수로.. sum을 잘 모르겠음..  수정 전 -- 2. SUM 집계 함수를 이용하여, 판매자 이름, 상품 ID 별 판매 금액을 구하는 쿼리를 작성하세요.SELECT S.SELL_ID, S.SELLER_NAME, P.PRODUCT_NAME, S.QUANTITY, SUM(PRICE * QUANTITY) OVER( PARTITION BY SELLER_NAME, PRODUCT_ID) AS (PRICE * QUANTITY)FROM PRODUCT PJOIN SELL S ON S.PRODUCT_ID = P.PRODUCT_IDORDER BY P.PRODUCT_ID;- as 뒤에는 () 사용 X 수정 후-- 2. SUM 집계 함수를 이용하여, 판매자 이름, 상품 ID 별 판매 금액을 구하는 쿼리를 ..

Data Science/SQL 2025.03.10

[Elice SQL] 비연관 서브쿼리. 항상 on 안써도 됌. 그냥 대치 값 넣을 것

수정 전- 뭐가 문제일까.. manager_id를 어디로 넣어야 하는 지 잘 모르겠어..-- 급여가 8000미만인 직원의 관리자 아이디와 급여를 출력하는 쿼리를 작성하세요.select employee_id, salaryfrom EMPLOYEE where employee_id in ( select employee_id from EMPLOYEE where salary  수정 전- manager_id를 구해서 그냥 직원 아이디에 넣으면 됌. 굳이 조인 x-- 급여가 8000미만인 직원의 관리자 아이디와 급여를 출력하는 쿼리를 작성하세요.select employee_id, salaryfrom EMPLOYEE where employee_id i..

Data Science/SQL 2025.03.04

[Elice SQL] 서브쿼리 심화: 연관/비연관, 단일행/다중행

*elice 코딩 강의안*- 메인쿼리랑 관련이 없고, 따로 빼도 동작에 문제가 없음. - 연관 비연관이 출력이 어떻게 되느냐에 대한 것이지, 다르게 구분되는 게 x- 해당 값이- 서브쿼리 값이 있는 지 없는지만- 아래처럼 해도 돌아는 가지만,-- EXISTS문을 응용하여, 결제금액이 5000원 이상인 가게ID, 가게이름을 조회하는 쿼리를 작성해보세요.SELECT store_id, store_nameFROM STOREWHERE EXISTS (SELECT store_id FROM PAYMENT WHERE PAY_AMOUNT >= 5000)ORDER BY store_id;- 정답은 같은 칼럼끼리 명백하게 이어줌.-- EXISTS문을 응용하여, 결제금액이 5000원 ..

Data Science/SQL 2025.03.04

[Elice SQL] null은 in, = 연산자로 못 씀.. is null 로 해

-.. 하 이거 저번에도 틀렸던 거 같은데 그 사이에 까먹었나 보다...ㅎ - NULL 값은 비교 연산(= 또는 IN)에서 필터링되지 않음=> NULL 값을 포함하려면 IS NULL을 사용해야 함 수정 전select *from MEMBERleft outer join MEMBER_DTL using(member_id)where member_grade in ('NULL', 'BRONZE')order by member_id; 수정 후 - 이젠 까먹지좀 말자.. ㅎSELECT *FROM MEMBERLEFT OUTER JOIN MEMBER_DTL USING (member_id)WHERE member_grade IS NULL OR member_grade = 'BRONZE' -- is nullORDER BY membe..

Data Science/SQL 2025.03.03

[Elice SQL] 조인 join

- *ㅇ리스 강의 자료*- 그럼 사실 using도 쓸 필요없이 natural join 하면 되는 거 아님?  => 명시적이라서 on을 씀 - cross 생략되지만, on/using 없을 때만 크로스 조인임.   -- 3. 위에서 작성한 두 쿼리에서 ORDER BY를 제거 후, 중복을 제거하는 집합연산자로 결합하고 최종 결과에 대해 정렬을 해주세요.select f.version_id, f.version_content_front, b.version_content_backfrom FRONT_VERSION_HIST fleft outer join BACK_VERSION_HIST bon f.version_id = b.version_idunionselect b.version_id, f.version_content_f..

Data Science/SQL 2025.03.03

[프로그래머스 SQL] 데이터 타입 주의 할 것. (date는 left()-> X)

연도별 대장균 크기의 편차 구하기 수정 전- 뭐가 문제일까..- cte 집계함수 안된대서.. 유니언 안 하고 뺐는데..with recursive cte as ( select ID, left(DIFFERENTIATION_DATE, 4) as YEAR, SIZE_OF_COLONY FROM ECOLI_DATA )select c.YEAR, (max(e.SIZE_OF_COLONY)-min(e.SIZE_OF_COLONY)) as YEAR_DEV, e.ID from ECOLI_DATA e join cte c where c.id = e.id order by YEAR, YEAR_DEV; 수정 후1- WITH RECURSIVE → WITH로 변..

Data Science/SQL 2025.03.02
728x90
반응형