240812

Gi Woon Lee·2024년 8월 12일
0

TIL

목록 보기
37/78

101번. Product Sales

# Write a solution to select the product id, year, quantity, and price for the first year of every product sold.

# 1번
with min_year as (
select product_id, min(year) year
from sales
group by product_id)

select
    product_id,
    year first_year,
    quantity,
    price
from sales s
where (product_id,year) in (select * from min_year) -- 복수의 where in 필터링 시 괄호를 잊지 마라

-- 2번
-- select
--     product_id,
--     year first_year,
--     quantity,
--     price
-- from sales
-- group by product_id
-- having year = min(year)

-- grouping하고 나서 select에서 grouping되지 않은 칼럼들을 마구 소환함.
-- 오류 가능성이 높아지며 대부분의 sql환경에서 구동되지 않는다. 

group 함수의 주의점: group 후 select를 하려면 모두 그룹화된 칼럼이어야 한다.
2번 코드를 보면, grouping 후 select로 반환하겠다고 적어둔 칼럼이 하나도 그룹화되지 않았다.

40번. 3진수 뒤집기

int(value, base)

def solution(n):
    tmp = ''
    while n:
        tmp += str(n % 3)
        n = n //3
    
    answer = int(tmp, 3)
    return answer

int(value, base)
value 만 주어졌을 때는 해당 value를 정수로 변환시킨다.
value, base가 주어졌을 때는 base진법의 value를 10진법 정수로 바꿔준다.

ex) int('29910', 9)
9진수로 표현된 문자열 '29910'을 10진수로 변환하는 작업

0개의 댓글