설득이 2024. 2. 14. 21:38

SQL 코드카타

 

상품 별 오프라인 매출 구하기
상품코드 별 매출액 합게를 출력하는 SQL문을 작성
결과는 매출액을 기준으로 내림차순 정렬
매출액이 같다면 상품코드를 기준으로 오름차순 정렬
  • 매출액 합계 : sum(가격 * 판매량)
  • 테이블 조인
  • 상품코드별 : group by
  • 정렬 order by 
SELECT P.PRODUCT_CODE, SUM(P.PRICE * O.SALES_AMOUNT) AS 'SALES'
FROM PRODUCT AS P
INNER JOIN OFFLINE_SALE AS O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY `SALES` DESC, P.PRODUCT_CODE ASC;

 

Consecutive Numbers
연속해서 3번 이상 나타는 숫자 찾기
  • 3번 이상 나타나기 -> 테이블 3번 만들기
SELECT DISTINCT L1.num  AS ConsecutiveNums 
FROM Logs L1, Logs L2,Logs L3 
WHERE L1.id=L2.id - 1 
AND L1.num=L2.num and  L2.id=L3.id-1 and L2.num=L3.num

 

Weather Observation Station 13
LAT_N이 큰 값이 갖는 STATION
38.7880~137.2345 사이 값
소수점 4자리
  • 소수점 4자리 : ROUND(,4)
  • 사이 값 : BETWEEN AND
SELECT ROUND(SUM(LAT_N),4) 
FROM STATION 
WHERE LAT_N BETWEEN 38.7880 AND 137.2345;

 


파이썬 코드카타

숫자 짝꿍 

def solution(X, Y):
    answer = []
    for i in (set(X)&set(Y)):
        for j in range(min(X.count(i),Y.count(i))):
            answer.append(i)
    answer.sort(reverse = True)
    if len(answer)==0:
        return "-1"
    elif answer[0] =="0":
        return "0"
    answer = "".join(answer)
    return answer

 

문자열 나누기 
문자열을 여러 문자열로 분해
왼쪽에서 오른족으로 읽어나가면서 x와 x가 아닌 다른 글자들이 나온 횟수 세기
처음으로 두 횟수가 같아지는 순간 멈추고 분리
def solution(s):
    answer = 0
    #x와 x가 아닌 다른 글자들
    isx ,isnotx = 0, 0
    for i in s:
        if isx == isnotx:
            answer += 1
            x = i
        if x == i:
            isx += 1
        else:
            isnotx += 1
    return answer

 

 


프로젝트

오버샘플링하고 모델링 돌렸을 때 0.87 정도 나와서 가설과 비슷한 파생변수 만들어봄

최대 0.92까지 나오는데 D등급과 E등급을 제대로 분류하지 못하는거 같아서 이 부분 잡으려고 여러 파생변수 만들어봤는데 0.95까지는 올라가지만 D,E 등급은 여전히 분류하지 못함

---

피드백

1. oversampling 다시 한 번 보기

2. Unknown 값 대치 다시 해보기

3. 중위 등급 판별을 중점으로 파생변수 만들기, 원핫 인코딩에서 라벨링 인코딩으로 바꿔보기, 대출 목적 묶어서 인코딩해보기 등이 있다